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

OSCHINA-MIRROR/mirrors-QuantumKatas

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку 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* Инструменты визуализации (тестирование)

Узнайте, как использовать различные инструменты для визуализации элементов программ на языке Q#.*

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

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

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

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

Игры с запутыванием

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

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

Разное

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

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

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

Выполнение кат локально

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

Если у вас еще нет установленного набора инструментов разработки квантовых программ, см. руководство по установке набора инструментов разработки квантовых программ. Если вы хотите запустить кваты и туториалы локально в виде 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:

$ cd QuantumKatas/
$ jupyter notebook index.ipynb

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

ЗАМЕЧАНИЕ: Это запустит сервер Jupyter Notebooks в том же окне командной строки, которое использовалось для выполнения команды. Если вы хотите продолжать использовать это окно для навигации, вы можете запустить сервер Jupyter Notebooks в новом окне с помощью следующих команд:

Для Windows:

$ cd QuantumKatas/
$ start jupyter notebook index.ipynb

Для Ubuntu:

$ cd QuantumKatas/
$ gnome-terminal -- jupyter notebook index.ipynb
```Вы также можете открыть отдельную ноутбук непосредственно, но это может сделать внутренние ссылки недействительными:
$ 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) для открытия **палитры команд**. Введите **открыть папку** на Windows 10 или Linux или **открыть** на macOS.

> **Совет**
> Почти все команды доступные в Visual Studio Code находятся в палитре команд.
> Если вы застряли, нажмите **Ctrl + Shift + P** (или **⌘ + Shift + P** на macOS) и начните печатать для поиска среди всех доступных команд.
>
> Вы также можете запустить Visual Studio Code с помощью командной строки:
> ```bash
> $ code QuantumKatas/BasicGates/
> ```

### Запустите тесты категории <a name="tests" /> ###

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

#### Visual Studio Code

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

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

## Запуск katas локально с использованием Docker <a name="docker" /> ##Вы можете использовать включённый [Dockerfile](./Dockerfile), чтобы создать образ Docker со всеми необходимыми инструментами для запуска кейсов из командной строки или Jupyter.1. Установите [Docker](https://docs.docker.com/install/).
2. Создайте образ Docker и присвойте ему метку `katas`:

```bash
docker build -t katas .
  1. Запустите образ в контейнере с именем katas-container с интерактивной командной строкой и перенаправьте порт контейнера 8888 на локальный порт 8888 (необходимо для запуска Jupyter):
docker run -it --name katas-container -p 8888:8888 katas /bin/bash
  1. Из той же командной строки, которую вы использовали для запуска контейнера, выполните версию C# kata Basic Gates:
cd ~/BasicGates/
dotnet test
  1. Запустите Jupyter Notebook внутри образа для kata Basic Gates:
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

Вклад

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

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

Код поведения можно найти в разделе Код поведения.Этот проект использует Code of Conduct Microsoft for Open Source. Дополнительную информацию можно найти в разделе Часто задаваемые вопросы о Коде поведения или обратиться по адресу электронной почты opencode@microsoft.com с любыми дополнительными вопросами или замечаниями.

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

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

Введение

Katas — это инструмент для изучения языков программирования, который основан на нескольких простых принципах обучения: активное обучение, постепенное усложнение и обратная связь. Развернуть Свернуть
Jupyter Notebook и 6 других языков
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