Aprender computação quântica com os Quantum KatasLearn quantum computing with the Quantum Katas

Os Katas Quânticos são tutoriais de código aberto, auto-pace e exercícios de programação destinados a ensinar os elementos da computação quântica e Q# da programação ao mesmo tempo.The Quantum Katas are open-source, self-paced tutorials and programming exercises aimed at teaching the elements of quantum computing and Q# programming at the same time.

Aprendizagem pela práticaLearning by doing

Os tutoriais e os exercícios reunidos neste projeto realçam a aprendizagem pela prática. Disponibilizam tarefas de programação que abrangem determinados tópicos que avançam desde muito simples a bastante desafiantes.The tutorials and exercises collected in this project emphasize learning by doing: they offer programming tasks that cover certain topics which progress from very simple to quite challenging. Cada tarefa requer que preencha algum código; as primeiras tarefas podem precisar de apenas uma linha e a última pode exigir um fragmento considerável de código.Each task asks you to fill in some code; the first tasks might require just one line, and the later ones might require a sizable fragment of code.

Mais importante ainda, as katas incluem quadros de testes que configuram, executam e validam as soluções para as tarefas.Most importantly, the katas include testing frameworks that set up, run and validate the solutions to the tasks. Tal permite-lhe obter feedback imediato sobre a sua solução e reconsiderar a abordagem, caso esteja incorreta.This allows you to get immediate feedback on your solution and to reconsider your approach if it is incorrect.

Você pode usar as katas para aprender no seu ambiente de eleição:You can use the katas for learning in your environment of choice:

  • Jupyter Notebooks online no ambiente de EnlaçamentoJupyter Notebooks online within the Binder environment
  • Jupyter Notebooks em execução no computador localJupyter Notebooks running on your local machine
  • Visual StudioVisual Studio
  • Visual Studio CodeVisual Studio Code

O que posso aprender com os Quantum Katas?What can I learn with the Quantum Katas?

Explore os fundamentos e fundamentos da computação quântica ou mergulhe mais profundamente em algoritmos e protocolos quânticos.Explore the basics and fundamentals of quantum computing or dive deeper into quantum algorithms and protocols. Recomendamos que siga este percurso de aprendizagem no início para assegurar que tem uma noção sólida sobre os conceitos fundamentais da computação quântica.We recommend you to follow this learning path in the beginning to make sure you have a solid grasp on the fundamental concepts of quantum computing. Como é óbvio, pode ignorar os tópicos com os quais está familiarizado, como aritmética complexa, e aprender os algoritmos em qualquer ordem que pretender.Of course, you can skip the topics you're comfortable with, such as complex arithmetic, and learn the algorithms in any order you want.

Introdução aos conceitos de computação quânticaIntroduction to quantum computing concepts

Rio KataKata DescriçãoDescription
Aritmética complexaComplex arithmetic Este tutorial explica alguns dos antecedentes matemáticos necessários para trabalhar com a computação quântica, como números imaginários e complexos.This tutorial explains some of the mathematical background required to work with quantum computing, such as imaginary and complex numbers.
Álgebra linearLinear algebra A álgebra linear é usada para representar estados quânticos e operações na computação quântica.Linear algebra is used to represent quantum states and operations in quantum computing. Este tutorial cobre o básico, incluindo matrizes e vetores.This tutorial covers the basics, including matrices and vectors.
Conceito de qubitThe concept of a qubit Saiba mais sobre qubits - um dos conceitos fundamentais da computação quântica.Learn about qubits - one of the core concepts of quantum computing.
Portas quânticas com um único qubitSingle-qubit quantum gates Este tutorial introduz portas quânticas de um único qubit, que funcionam como blocos de construção de algoritmos quânticos e transformam estados quânticos quânticos de várias maneiras.This tutorial introduces single-qubit quantum gates, which act as the building blocks of quantum algorithms and transform quantum qubit states in various ways.
Sistemas multiqubitMulti-qubit systems Este tutorial introduz sistemas multi-qubit, a sua representação na notação matemática e em Q# código, e o conceito de emaranhado.This tutorial introduces multi-qubit systems, their representation in mathematical notation and in Q# code, and the concept of entanglement.
Portas quânticas multi-qubitMulti-qubit quantum gates Este tutorial segue o tutorial de portas quânticas single-qubit, e foca-se na aplicação de portões quânticos em sistemas multi-qubit.This tutorial follows the Single-qubit quantum gates tutorial, and focuses on applying quantum gates to multi-qubit systems.

Noções básicas de computação quânticaQuantum computing fundamentals

Rio KataKata DescriçãoDescription
Reconhecer portas quânticasRecognizing quantum gates Uma série de exercícios concebidos para o familiarizar com os portões quânticos básicos em Q# .A series of exercises designed to get you familiar with the basic quantum gates in Q#. Inclui exercícios para portões básicos de um único qubit e multi-qubit, portões adjacentes e controlados, e como usar portões para modificar o estado de um qubit.Includes exercises for basic single-qubit and multi-qubit gates, adjoint and controlled gates, and how to use gates to modify the state of a qubit.
Criar sobreposição quânticaCreating quantum superposition Utilize estes exercícios para se familiarizar com o conceito de superposição e programação em Q# .Use these exercises to get familiar with the concept of superposition and programming in Q#. Inclui exercícios para portões básicos de um único qubit e multi-qubit, superposição e controlo de fluxo e recursão em Q# .Includes exercises for basic single-qubit and multi-qubit gates, superposition, and flow control and recursion in Q#.
Distinguir estados quânticos com mediçõesDistinguishing quantum states using measurements Resolva estes exercícios enquanto aprende sobre a medição quântica e estados orthogonais e não orthogonais.Solve these exercises while learning about quantum measurement and orthogonal and non-orthogonal states.
Associar mediçõesJoint measurements Saiba mais sobre as medições de paridade conjunta e como utilizar a operação medida para distinguir estados quânticos.Learn about joint parity measurements and how to use the Measure operation to distinguish quantum states.

AlgoritmosAlgorithms

Rio KataKata DescriçãoDescription
Quantum teleportation (Teletransporte quântico)Quantum teleportation Esta kata explora a teleportação quântica - um protocolo que permite comunicar um estado quântico usando apenas a comunicação clássica e o emaranhado quântico anteriormente partilhado.This kata explores quantum teleportation - a protocol which allows communicating a quantum state using only classical communication and previously shared quantum entanglement.
Superdense coding (Codificação superdensa)Superdense coding A codificação superdense é um protocolo que permite a transmissão de dois bits de informação clássica enviando apenas um qubit usando o emaranhado quântico anteriormente partilhado.Superdense coding is a protocol that allows transmission of two bits of classical information by sending just one qubit using previously shared quantum entanglement.
Algoritmo Deutsch–JozsaDeutsch–Jozsa algorithm Este algoritmo é famoso por ser um dos primeiros exemplos de um algoritmo quântico que é exponencialmente mais rápido do que qualquer algoritmo clássico determinístico.This algorithm is famous for being one of the first examples of a quantum algorithm that is exponentially faster than any deterministic classical algorithm.
Explorar as propriedades de alto nível do algoritmo de pesquisa de GroverExploring high-level properties of Grover's search algorithm Uma introdução de alto nível a um dos algoritmos mais famosos da computação quântica.A high-level introduction to one of the most famous algorithms in quantum computing. Resolve o problema de encontrar uma entrada para uma caixa preta (oráculo) que produz uma determinada saída.It solves the problem of finding an input to a black box (oracle) that produces a particular output.
Implementar o algoritmo de pesquisa de GroverImplementing Grover's search algorithm Esta kata mergulha mais profundamente no algoritmo de pesquisa de Grover, e cobre a escrita de oráculos, executando passos do algoritmo, e finalmente juntando tudo.This kata dives deeper into Grover's search algorithm, and covers writing oracles, performing steps of the algorithm, and finally putting it all together.
Resolver problemas reais usando o algoritmo de Grover: problemas de SATSolving real problems using Grover's algorithm: SAT problems Uma série de exercícios que usam o algoritmo de Grover para resolver problemas realistas, usando problemas de satisfibilidade booleana (SAT) como exemplo.A series of exercises that uses Grover's algorithm to solve realistic problems, using boolean satisfiability problems (SAT) as an example.
Resolver problemas reais usando o algoritmo de Grover: Problemas de coloração de gráficosSolving real problems using Grover's algorithm: Graph coloring problems Este kata explora ainda o algoritmo de Grover, desta vez para resolver problemas de satisfação de restrição, usando um problema de coloração de gráfico como exemplo.This kata further explores Grover's algorithm, this time to solve constraint satisfaction problems, using a graph coloring problem as an example.

Protocolos e bibliotecasProtocols and libraries

Rio KataKata DescriçãoDescription
Protocolo BB84 para distribuição de chaves quânticasBB84 protocol for quantum key distribution Saiba e implemente um protocolo de distribuição de chaves quânticas, BB84,usando qubits para trocar chaves criptográficas.Learn about and implement a quantum key distribution protocol, BB84, using qubits to exchange cryptographic keys.
Código de correção de erro de bit-flipBit-flip error correcting code Explore a correção de erros quânticos com o mais simples dos códigos de correção de erros quânticos (QEC) - o código bit-flip de três qubits.Explore quantum error correction with the simplest of the quantum error-correction (QEC) codes - the three-qubit bit-flip code.
Estimativa de fasesPhase estimation Os algoritmos de estimativa de fase são alguns dos blocos de construção mais fundamentais da computação quântica.Phase estimation algorithms are some of the most fundamental building blocks of quantum computing. Saiba mais sobre a estimativa de fase com estes exercícios que cobrem a estimativa da fase quântica e como preparar e executar rotinas de estimativa de fase em Q# .Learn about phase estimation with these exercises that cover quantum phase estimation and how to prepare and run phase estimation routines in Q#.
Aritmética quântica: Aditeiros de porta-ondas de construçãoQuantum arithmetic: Building ripple-carry adders Uma série aprofundada de exercícios que explora a ondulação carregam a adição num computador quântico.An in-depth series of exercises that explores ripple carry addition on a quantum computer. Construa um adder quântico no local, expanda-o com um algoritmo diferente e, finalmente, construa um subtrator quântico no local.Build an in-place quantum adder, expand on it with a different algorithm, and finally, build an in-place quantum subtractor.

Jogos de entrelaçamentoEntanglement games

Rio KataKata DescriçãoDescription
Jogo CHSHCHSH game Explore o emaranhado quântico com uma implementação do jogo CHSH.Explore quantum entanglement with an implementation of the CHSH game. Este jogo não local mostra como o emaranhado quântico pode ser usado para aumentar as hipóteses dos jogadores de ganhar para além do que seria possível com uma estratégia puramente clássica.This nonlocal game shows how quantum entanglement can be used to increase the players' chance of winning beyond what would be possible with a purely classical strategy.
Jogo GHZGHZ game O jogo ghz é outro jogo não local, mas envolve três jogadores.The GHZ game is another nonlocal game, but involves three players.
Jogo quadrado mágico Mermin-PeresMermin-Peres magic square game Uma série de exercícios que explora a pseudo-telepatia quântica para resolver um jogo quadrado mágico.A series of exercises that explores quantum pseudo-telepathy to solve a magic square game.

RecursosResources

Veja a série completa de Quantum KatasSee the full series of Quantum Katas

Executar katas onlineRun the katas online