Kuantuma özgü veri türleri

Bu konuda, kuantum etki alanına özgü olan diğer iki türle birlikte türü açıklanmaktadır Qubit : Pauli ve Result.

Kubit

Q# kubitleri hem işlevlere hem de işlemlere geçirilebilen opak öğeler olarak kabul eder, ancak yalnızca hedeflenen kuantum işlemcisinde yerel olan yönergelere geçirilerek etkileşime geçilebilir. Bu tür yönergeler her zaman işlem biçiminde tanımlanır, çünkü amaçları kuantum durumunu değiştirmektir. Kubitlerin giriş bağımsız değişkenleri olarak geçirilebileceği gerçeğine rağmen işlevlerin kuantum durumunu değiştirememesi kısıtlaması, işlevlerin yalnızca diğer işlevleri çağırabilmesi ve işlemleri çağıramaması gerekmesiyle zorlanır.

Kitaplıklar Q# standart bir iç işlem kümesine göre derlenir; başka bir deyişle, dil içindeki uygulamaları için hiçbir tanımı olmayan işlemler. Hedeflemeden sonra, yürütme hedefine yerel yönergeler açısından bunları ifade eden uygulamalar derleyici tarafından içinde bağlanır. Q# Bu nedenle bir program, kuantum hesaplamasını ifade etmek üzere yeni, daha üst düzey işlemler oluşturmak için bu işlemleri hedef makine tarafından tanımlandığı şekilde birleştirir. Bu şekilde, Q# bir hedef makinenin yapısı ve kuantum durumunun gerçekleştirilmesi açısından çok genel olmakla birlikte, temel alınan kuantum ve hibrit kuantum-klasik algoritmalarının mantığını ifade etmek çok kolaydır.

Kendi içinde Q# kuantum durumunu temsil eden bir tür veya yapı Q# yoktur. Bunun yerine kubit, kuantum bilgisayardaki en küçük adreslenebilir fiziksel birimi temsil eder. Bu nedenle kubit uzun ömürlü bir öğe Q# olduğundan doğrusal türlere gerek yoktur. Bu nedenle, içindeki Q#duruma açıkça başvurmayız, bunun yerine, örneğin ve Hgibi X işlemlerin uygulanması yoluyla durumun program tarafından nasıl dönüştürüldüğünü açıklarız. Bir grafik gölgelendirici programının her köşeye dönüştürmelerin açıklamasını birikmesine benzer şekilde, içindeki Q# bir kuantum programı da hedef makinenin iç yapısına tamamen opak başvurular olarak temsil edilen kuantum durumlarına dönüştürmeleri biriktirir.

Bir Q# programın kubitin durumuna giriş yapma yeteneği yoktur ve bu nedenle kuantum durumunun ne olduğu veya nasıl gerçekleştiği konusunda tamamen bağımsızdır. Bunun yerine, bir program hesaplamanın kuantum durumu hakkında bilgi edinmek için gibi Measure işlemleri çağırabilir.

Pauli

Türdeki Pauli değerler tek kubitli Pauli işlecini belirtir; olasılıklar , PauliX, PauliYve PauliZ'tirPauliI. Pauli değerleri öncelikle kuantum ölçümlerinin temelini belirtmek için kullanılır.

Sonuç

türü, Result kuantum ölçümünün sonucunu belirtir. Q# tek kubitli Pauli işleçlerinin ürünlerinde ölçümler sağlayarak çoğu kuantum donanımını yansıtır; a Result değeri Zero +1 eigenvalue değerinin, bir Result değeri One ise -1 eigenvalue değerinin ölçüldüğünü gösterir. Diğer bir deyişle, Q# -1'in yükseltildiği güç tarafından eigenvalues değerini temsil eder. Bu kural, klasik bitlerle daha yakından eşlendiğinden kuantum algoritmaları topluluğunda daha yaygındır.