Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve o tipo de Qubit
, juntamente com dois outros tipos que são um pouco específicos para o domínio quântico: Pauli
e Result
.
O Qubit
Q# trata qubits como itens opacos que podem ser passados para funções e operações, mas só podem ser interagidos passando-os para instruções nativas para o processador quântico de destino. Essas instruções são sempre definidas na forma de operações, pois sua intenção é modificar o estado quântico. A restrição de que as funções não podem modificar o estado quântico, apesar do fato de que qubits podem ser passados como argumentos de entrada, é imposta pela exigência de que as funções só podem chamar outras funções e não podem chamar operações.
As bibliotecas Q# são compiladas em relação a um conjunto padrão de operações intrínsecas, ou seja, operações que não têm nenhuma definição para sua implementação dentro do idioma. Ao direcionar, as implementações que as expressam em termos de instruções nativas ao destino de execução são vinculadas pelo compilador. Um programa Q#, portanto, combina essas operações conforme definido por um computador de destino para criar novas operações de nível superior para expressar a computação quântica. Dessa forma, Q# torna muito fácil expressar a lógica subjacente a algoritmos quânticos quânticos e quânticos clássicos híbridos, além de ser muito geral em relação à estrutura de uma máquina de destino e à sua realização do estado quântico.
Dentro Q# em si, não há nenhum tipo ou construção em Q# que represente o estado quântico.
Em vez disso, um qubit representa a menor unidade física endereçável em um computador quântico.
Como tal, um qubit é um item de longa duração, portanto, Q# não tem necessidade de tipos lineares.
Portanto, não nos referimos explicitamente ao estado dentro de Q#, mas descrevemos como o estado é transformado pelo programa, por exemplo, por meio da aplicação de operações como X
e H
.
Semelhante a como um programa de sombreador gráfico acumula uma descrição de transformações em cada vértice, um programa quântico em Q# acumula transformações em estados quânticos, representados como referências totalmente opacas à estrutura interna de um computador de destino.
Um programa Q# não tem capacidade de introspecção no estado de um qubit e, portanto, é totalmente independente sobre o que é um estado quântico ou sobre como ele é realizado.
Em vez disso, um programa pode chamar operações como Measure
para aprender informações sobre o estado quântico da computação.
Pauli
Os valores do tipo Pauli
especificar um operador Pauli de qubit único; as possibilidades são PauliI
, PauliX
, PauliY
e PauliZ
.
Pauli
valores são usados principalmente para especificar a base para uma medida quântica.
Resultado
O tipo Result
especifica o resultado de uma medida quântica.
Q# espelha a maioria do hardware quântico fornecendo medidas em produtos de operadores Pauli de qubit único; um Result
de Zero
indica que o eigenvalue +1 foi medido e um Result
de One
indica que o eigenvalue -1 foi medido. Ou seja, Q# representa eigenvalues pelo poder ao qual -1 é gerado.
Essa convenção é mais comum na comunidade de algoritmos quânticos, pois é mapeada mais de perto para bits clássicos.