Exercício – Criar um gerador quântico de bits aleatórios
Você constrói seu gerador de números aleatórios quânticos em duas fases. Nesta unidade, você constrói a primeira fase, que é gerar um único bit aleatório.
Definir um gerador de bits aleatório
Você começa alocando qubit. Quando você aloca um qubit, ele está no estado $\ket{0}$, o que não é muito útil para gerar números aleatórios. Você precisa colocar o qubit em superposição. Você pode fazer isso aplicando o portão de Hadamard, H
, ao qubit. O portão de Hadamard coloca o qubit em uma superposição igual de $\ket{0}$ e $\ket{1}$.
Quando você mede o qubit, você obterá um bit aleatório, 0 ou 1, com igual probabilidade de 50%. O valor desse bit é realmente aleatório, não há como saber o que você obtém após a medição.
Criar o programa Q#
Abra o Visual Studio Code e selecione File > New Text File para criar um novo arquivo.
Guarde o ficheiro como
RandomNumberGenerator.qs
. Este ficheiro irá conter o código Q# para o seu programa.Copie o código a seguir para o
RandomNumberGenerator.qs
arquivo.namespace QuantumRandomNumberGenerator { @EntryPoint() operation GenerateRandomBit() : Result { // Allocate a qubit. use q = Qubit(); // Set the qubit into superposition of 0 and 1 using the Hadamard H(q); // At this point the qubit `q` has 50% chance of being measured in the // |0〉 state and 50% chance of being measured in the |1〉 state. // Measure the qubit value using the `M` operation, and store the // measurement value in the `result` variable. let result = M(q); // Reset qubit to the |0〉 state. // Qubits must be in the |0〉 state by the time they are released. Reset(q); // Return the result of the measurement. return result; } }
Vamos recapitular o novo código.
- Primeiro, você aloca um qubit com a
Qubit()
operação e ause
palavra-chave. - Então, a operação Hadamard coloca o qubit em superposição,
H(q)
. - Em seguida, você mede o qubit para obter um bit aleatório,
M(q)
. - Finalmente,
Reset(q)
redefine o qubit para o estado zero. Qubits devem estar no estado $\ket{0}$ no momento em que são lançados.
Execute o programa localmente
Para executar o programa localmente no simulador integrado, Executar a partir da lista de comandos abaixo @EntryPoint()
ou pressione Ctrl+F5. Sua saída aparece no console de depuração no terminal.
O resultado é verdadeiramente aleatório. Você pode executar o programa novamente para ver um resultado diferente.
Na próxima unidade, você implementará a segunda fase do seu gerador quântico de números aleatórios: combinando vários bits aleatórios para formar um número maior.