1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-QuantumKatas

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

УВЕДОМЛЕНИЕ О ПРЕДУПРЕЖДЕННОМ УПРАВЛЕНИИ

Мы модернизируем опыт использования ката с квантовыми вычислениями. Пожалуйста, посетите https://quantum.microsoft.com/experience/quantum-katas, чтобы попробовать новое онлайн-опыт Azure Quantum katas с интегрированной помощью от Copilot в Azure Quantum.

Для репозитория Modern QDK, пожалуйста, посетите Microsoft/qsharp.

Для получения дополнительной информации о Modern QDK и Azure Quantum, посетите https://aka.ms/AQ/Documentation.

Введение

Квантовые категи (как правило, като — это серия задач или упражнений) представляют собой коллекцию самообучающихся учебников и программных упражнений, чтобы помочь вам изучить квантовые вычисления и программирование на языке Q#.

Каждый като представляет собой отдельное множество упражнений, которое включает:* Последовательность задач, прогрессирующих от простого к сложному. Каждая задача требует от вас заполнения некоторого кода. Первый шаг может потребовать всего одной строки, а последний — довольно сложного кода.

  • Тестовый фреймворк, который устанавливает, запускает и проверяет ваши решения. Каждая задача покрывается единичным тестом, который изначально проваливается. Как только вы напишете код, чтобы сделать тест успешным, вы можете перейти к следующей задаче.
  • Ссылки на справочные материалы по квантовым вычислениям и Q#, которые могут понадобиться для решения задач.
  • Подсказки, ссылки на решения и подробные объяснения, чтобы помочь вам, если вы застряли.Квантовые категи также включают учебники, которые знакомят учеников с базовыми концепциями и алгоритмами, используемыми в квантовых вычислениях, начиная с необходимой математики (комплексные числа и линейная алгебра). Они следуют тому же шаблону, дополняя теорию демонстрациями на Q# и практическими программными упражнениями.

Содержание

План обучения

Вот рекомендованный нами путь обучения, если вы начинаете изучать квантовое вычисление и квантовое программирование. Как только вы овладеете основами, вы можете приступить к темам, которые вас интересуют!

Концепции квантового вычисления: кубиты и ворота* Комплексное арифметическое вычисление (руководство).

Изучите комплексные числа и математику, необходимую для работы с квантовыми вычислениями.

Инструменты Q# и наборы инструментов Microsoft Quantum Development Kit

Квантовые Оракулы и Простые Алгоритмы с Оракулами* Квантовые оракулы (учебник).

Узнайте, как реализовывать классические функции в виде эквивалентных квантовых оракулов.

Алгоритм Гровера* Реализация алгоритма Гровера.

Узнайте о алгоритме Гровера и о том, как писать квантовые оракулы для его использования.

Игры с запутанностью

Обратимые вычисления

  • Таблицы истинности. Узнайте, как представлять и манипулировать булевыми функциями с помощью таблиц истинности и реализовывать их в виде квантовых операций.
  • Полосковый сумматор. Постройте полосковый сумматор на квантовом компьютере.

Разное

Запустите ката и руководства онлайн

Каты квантового вычисления теперь доступны в виде Jupyter Notebook онлайн! См. index.ipynb для списка всех кат и руководств, а также инструкций по запуску их онлайн.

Обратите внимание, что mybinder.org работает с уменьшенной производительностью, поэтому получение виртуальной машины и запуск ноутбуков на ней может потребовать нескольких попыток. Хотя запуск кат онлайн является самым простым способом для начала, если вы хотите сохранить свой прогресс и получить лучшую производительность, мы рекомендуем выбрать вариант локальной установки.

Запустите каты локально

Установка Quantum Development Kit ###Чтобы использовать кэтасы квантового вычисления локально, вам потребуется Quantum Development Kit, доступный для Windows 10, macOS и Linux.

Если у вас ещё нет установленного Quantum Development Kit, см. руководство по установке Quantum Development Kit.Если вы хотите запустить кетасы и туториалы локально в виде Jupyter Notebook:

  1. Следуйте инструкциям в руководстве по установке QDK для Python и руководстве по установке QDK для Jupyter Notebook.
  2. Некоторые туториалы требуют установки дополнительных пакетов Python:
    • "Сложная арифметика" и "Линейная алгебра" требуют установки пакета pytest.
    • "Исследование алгоритма поиска Гровера" требует установки пакета matplotlib.
    • "Квантовое классификация" требует установки пакетов matplotlib и numpy.

Для обновления ядра IQ# до новой версии при ежемесячных выпусках QDK обратитесь к разделу Обновление ядра IQ#.Если вы хотите запускать кетасы и туториалы локально как проекты Q#:Следуйте инструкциям в руководстве по установке QDK для Visual Studio, Visual Studio Code или других редакторов.

Запуск локальных проектов Q# требует загрузки и установки .NET 6.0 SDK. Вы можете сделать это даже если у вас уже установлена другая версия .NET, так как несколько версий поддерживаются параллельно.

Так как Visual Studio 2019 не поддерживает проекты .NET 6.0, вам потребуется обновиться до Visual Studio 2022 и установить соответствующее расширение Microsoft Quantum Development Kit.

Загрузка кэтас по квантовой механике

Если у вас установлен Git, клонируйте репозиторий Microsoft/QuantumKatas:

$ git clone https://github.com/Microsoft/QuantumKatas.git

СОВЕТ
Как Visual Studio 2022, так и Visual Studio Code делают процесс клонирования репозиториев простым прямо из среды разработки. Для подробностей см. документацию по Visual Studio и Visual Studio Code.

Если у вас Git не установлен, скачайте кэтас с https://github.com/Microsoft/QuantumKatas/archive/main.zip.

Запуск кэтас как Jupyter Notebook

Лучший способ запуска кэтас как Jupyter Notebook — перейти в корневую папку репозитория и открыть index.ipynb с помощью Jupyter:```bash $ cd QuantumKatas/ $ jupyter notebook index.ipynb


Это откроет ноутбук, содержащий список всех кэтас и туториалов, и вы сможете перейти к нужному через ссылки.

> **ПРИМЕЧАНИЕ:** 
> Это запустит сервер Jupyter Notebooks в том же окне командной строки, которое вы использовали для выполнения команды. Если вы хотите продолжать использовать это окно для навигации, вы можете запустить сервер Jupyter Notebooks в новом окне с помощью следующих команд:   
>
> **Для Windows:**
> ```bash
> $ cd QuantumKatas/
> $ start jupyter notebook index.ipynb
> ```
>  
> **Для Ubuntu:**
> ```bash
> $ cd QuantumKatas/
> $ gnome-terminal -- start jupyter notebook index.ipynb
> ```
> Вы также можете открыть отдельную тетрадь непосредственно, но это может сделать внутренние ссылки недействительными:

```bash
$ cd QuantumKatas/tutorials/ComplexArithmetic
$ jupyter notebook ComplexArithmetic.ipynb

Запуск ката как проекта на Q#

Каждый ката находится в своем собственном каталоге как автономный проект на Q#, решение и тройка Jupyter Notebook. Например, структура каталога BasicGates выглядит следующим образом:

QuantumKatas/
  BasicGates/
    README.md                  # Инструкции, специфичные для этого ката.
    .vscode/                   # Метаданные, используемые Visual Studio Code.
    BasicGates.sln             # Файл решения Visual Studio.
    BasicGates.csproj          # Файл проекта, используемый для сборки как классического, так и квантового кода.

    BasicGates.ipynb           # Jupyter Notebook для этого ката.
    Workbook_BasicGates.ipynb  # Jupyter Notebook рабочий лист для этого ката.
```    Tasks.qs                   # Исходный код на Q#, который вы будете заполнять по мере решения задач.
    Tests.qs                   # Тесты на Q#, которые проверяют ваши решения.
    ReferenceImplementation.qs # Исходный код на Q#, содержащий решения для задач.

Чтобы открыть BasicGates ката в Visual Studio 2022, откройте файл решения QuantumKatas/BasicGates/BasicGates.sln.

Чтобы открыть BasicGates ката в Visual Studio Code, откройте папку QuantumKatas/BasicGates/. Нажмите Ctrl + Shift + P (или ⌘ + Shift + P на macOS) для открытия Command Palette. Введите Открыть папку на Windows 10 или Linux или Открыть на macOS.

Совет Почти все команды, доступные в Visual Studio Code, находятся в Command Palette. Если вы застряли, нажмите Ctrl + Shift + P (или ⌘ + Shift + P на macOS) и начните вводить текст для поиска среди всех доступных команд.

Вы также можете запустить Visual Studio Code из командной строки:

$ code QuantumKatas/BasicGates/

Запуск тестов ката

Как только ката будет открыта, пришло время запустить тесты с помощью следующих инструкций. Изначально все тесты будут провалены. Не паникуйте! Откройте Tasks.qs и начните заполнять код для выполнения задач. Каждая задача покрывается единичным тестом. Как только вы заполните правильный код для задачи, пересоберите проект и перезапустите тесты, и соответствующий единичный тест пройдет.#### Visual Studio 20221. Соберите решение. 2. Из главного меню откройте Test Explorer (Test > Windows) и выберите Запустить все, чтобы запустить все юнит-тесты одновременно. 3. Работайте над задачами в файле Tasks.qs. 4. Чтобы протестировать изменения вашего кода для задачи, соберите решение заново и выполните все юнит-тесты с помощью Запустить все, или запустите только тест для данной задачи, щелкнув правой кнопкой мыши по тесту и выбрав Запустить выбранные тесты.#### Visual Studio Code

  1. Нажмите Ctrl + ` (или ⌘ + ` на macOS), чтобы открыть встроенный терминал. Терминал должен открыться в директории kata. Если это не так, перейдите в папку, содержащую файл .csproj для kata, используя команду cd.
  2. Выполните dotnet test в встроенном терминале. Это должно собрать проект kata и запустить все юнит-тесты. Все юнит-тесты должны завершиться ошибкой.
  3. Работайте над задачами в файле Tasks.qs.
  4. Чтобы протестировать изменения вашего кода для задачи, выполните dotnet test снова в встроенном терминале.

Для удобства существует конфигурационный файл tasks.json для каждого kata. Он позволяет Visual Studio Code запускать шаги сборки и тестирования из Palette команд. Нажмите Ctrl + Shift + P (или ⌘ + Shift + P на macOS), чтобы открыть Palette и введите Run Build Task или Run Test Task и нажмите Enter.

Запуск katas локально с использованием Docker

Вы можете использовать включённый Dockerfile, чтобы создать образ Docker со всеми необходимыми инструментами для запуска katas из командной строки или Jupyter.

  1. Установите Docker.
  2. Создайте образ Docker и присвойте ему тег katas:
docker build -t katas .
  1. Запустите образ в контейнере с именем katas-container с интерактивной командной строкой и перенаправьте порт контейнера 8888 на локальный порт 8888 (необходимо для запуска Jupyter):
docker run --name katas-container -it -p 8888:8888 katas
``````bash
docker run -it --name katas-container -p 8888:8888 katas /bin/bash
  1. Из той же командной строки, которую вы использовали для запуска контейнера, запустите версию C# kata BasicGates:
cd ~/BasicGates/
dotnet test
  1. Запустите Jupyter Notebook внутри образа для kata BasicGates:
cd ~/BasicGates/ && jupyter notebook --ip=0.0.0.0 --no-browser
  1. Как только Jupyter запустится, используйте ваш браузер, чтобы открыть kata в формате notebook. Вам потребуется токен, сгенерированный Jupyter при старте на предыдущем шаге:
http://localhost:8888/notebooks/BasicGates.ipynb

Чтобы выйти из контейнера Docker без его завершения (в режиме демона), нажмите Ctrl+P, Ctrl+Q

Чтобы снова войти в существующий контейнер katas-container (в режиме демона):

docker attach katas-container

После завершения работы удалите контейнер katas-container:

docker rm --force katas-container

Вклад

Этот проект приветствует вклады и предложения. Для получения подробной информации см. Как я могу внести свой вклад?.

Код поведения

Этот проект использует Код поведения Microsoft для открытых источников. Дополнительную информацию можно найти в часто задаваемых вопросах по Коду поведения или связаться с opencode@microsoft.com для получения ответов на дополнительные вопросы или комментариев.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Katas — это инструмент для изучения языков программирования, который основан на нескольких простых принципах обучения: активное обучение, постепенное усложнение и обратная связь. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-QuantumKatas.git
git@api.gitlife.ru:oschina-mirror/mirrors-QuantumKatas.git
oschina-mirror
mirrors-QuantumKatas
mirrors-QuantumKatas
main