Q# ga kirish Kvant dasturiy ta'minotini ishlab chiqishga kirish
Birlik aslida bekor yoki Yo'q. Bu bo'sh qiymatni / qiymat yo'qligini anglatadi. Int
Download 250.35 Kb. Pdf ko'rish
|
Q# ga kirish - Kvant dasturiy ta\'minotini ishlab chiqishga kirish
- Bu sahifa navigatsiya:
- String
- Natija
- Ozgaruvchan ozgaruvchilar mutable
Birlik aslida bekor yoki Yo'q. Bu bo'sh qiymatni / qiymat yo'qligini anglatadi.
Int - 64 bitli imzolangan butun son. E'tibor bering, bu 32-bit o'rniga 64-bit; Aksariyat klassik tillar buni "uzoq" deb ataydi. Double - 64 bitli suzuvchi nuqtali raqam. Bu C uslubidagi tillarda "double" yoki Pythonda "float" bilan bir xil. Bool mantiqiy qiymatdir, true yoki false . String - bu Unicode belgilar ketma-ketligi. Bu C# / Java qatori yoki Pythondagi str ga o'xshaydi. Qubit - bu qubit. U hech qanday ma'lumotni oshkor etmaydi (u shaffof emas), lekin siz kvant eshiklari bo'lgan kubitlarda harakat qilishingiz mumkin (boshqa hamma narsa kabi operatsiyalar sifatida belgilanadi). Natija kubit o'lchovi natijasini bildiradi. Bu samarali ravishda ikkita mumkin bo'lgan qiymatga ega bo'lgan enum: ga mos keladigan nol holat va ga mos keladigan One davlat. Diapazon Python-dagi diapazonlarga o'xshaydi - diapazon diskret boshlanish, qadam o'lchami va to'xtashga ega bo'lgan butun sonlar ketma-ketligidir. O'zgaruvchilar bilan ishlash Q# o'zgaruvchan o'zgaruvchilarni (ularni aniqlagandan keyin o'zgartirishingiz mumkin) o'zgarmas o'zgaruvchilardan ajratadi. Siz let kalit so'zi bilan yangi o'zgarmas o'zgaruvchini belgilashingiz mumkin : O'zgaruvchining turi kompilyator tomonidan avtomatik ravishda aniqlanadi. Bunday holda, u Int ga o'rnatiladi. var1 o'zgarmas bo'lgani uchun u har doim 0 qiymatiga ega bo'ladi. Keyinchalik uni o'zgartirib bo'lmaydi. O'zgaruvchan o'zgaruvchilar mutable kalit so'zi bilan e'lon qilinishi mumkin : Bu holda, var2 String hisoblanadi. Uni keyinroq set kalit so'zi yordamida o'zgartirish mumkin : |0⟩ |1⟩ let var1 = 0; mutable var2 = "hello world"; set var2 = $"var1 = {IntAsString(var1)}"; 17.12.2022, 10:07 Q# ga kirish - Kvant dasturiy ta'minotini ishlab chiqishga kirish https://stem.mitre.org/quantum/software-tools/intro-qsharp.html 6/10 Bu shuningdek, string interpolatsiyasini ham ko'rsatadi , bu erda biror narsaning satr qiymatini olish uchun kodni satrning o'rtasiga kiritishingiz mumkin. IntAsString funktsiyasi Int ni satrga aylantiradi . Satr interpolyatsiyasi ochilish kotirovkasining oldiga a$ qo'yish orqali amalga oshiriladi. Ishlamoqchi bo'lgan har qanday kodni bir juft jingalak qavsga qo'yishingiz mumkin. Bu C# da satr interpolyatsiyasi yoki Pythonda satr oldiga "f" qo'yish bilan bir xil. Tuplar Q# kortejlar uchun juda keng yordamga ega (bir nechta turli ob'ektlarni o'z ichiga olgan anonim turlar). Ular juda ko'p ishlatiladi, ayniqsa qiymatlarni bitta o'zgaruvchiga ulash yoki operatsiyadan bir nechta narsalarni qaytarish uchun. Tuple quyidagicha aniqlanadi: Bu yangi turdagi kortejni yaratadi (Int, Int, Double). Tur avtomatik ravishda kompilyator tomonidan aniqlanadi. Kortej ushbu yagona o'zgaruvchi sifatida uzatilishi mumkin, agar siz tegishli narsalarni semantik jihatdan birlashtirmoqchi bo'lsangiz, bu qulay bo'lishi mumkin. Kortejdan qiymatlarni olish, kortejni alohida o'zgaruvchilarga "ochish" orqali amalga oshirilishi mumkin: Avvalgidek, bu o'zgaruvchilarning turlari avtomatik ravishda aniqlanadi. Agar siz faqat bitta qiymat haqida qayg'ursangiz, ularning o'rniga pastki chiziq qo'yish orqali qolganlarini e'tiborsiz qoldirishingiz mumkin: Bu birinchi qiymatni chiqarib tashlaydi va qolganlarini yolg'iz qoldiradi. Ranglar Q# da diapazonlar massivlarning aniq indekslarini tanlash yoki for tsikllari bilan takrorlash kabi ishlar uchun juda ko'p ishlatiladi. Ular quyidagicha tasniflanadi: Buni "0 dan 3 gacha" deb o'qish mumkin. Bu 0, 1, 2 va 3 qiymatlariga ega boʻlgan diapazonni yaratadi. Q# diapazonidagi oxirgi element toʻplamga kiritilganligini unutmang ; bu oxirgi element chiqarib tashlangan Python diapazonlaridan farq qiladi. let someTuple = (1, 2, 3.0); let (tuple0, tuple1, tuple2) = someTuple; let (tuple3, _, _) = someTuple; let range = 0..3; 17.12.2022, 10:07 Q# ga kirish - Kvant dasturiy ta'minotini ishlab chiqishga kirish https://stem.mitre.org/quantum/software-tools/intro-qsharp.html 7/10 Agar belgilanmagan boʻlsa, diapazon standart qadam oʻlchami 1dan foydalanadi. Biroq, diapazonlarni aniq qadam oʻlchami bilan ham aniqlash mumkin: Ushbu sintaksisda qadam o'rta termindir. Bu 0, 2, 4, 6, 8 va 10 qiymatlariga ega bo'lgan diapazonni ifodalaydi. Qadam hajmi sifatida manfiy raqamni belgilash orqali diapazonlar ham kamayishi mumkin: Bu 10 dan 1 ga o'tadi, 1 ga kamayishi bilan. Massivlar Q# dagi massivlar (asosan) boshqa tillardagi kabi ishlaydi. Ular kvadrat qavslar bilan belgilanadi va indekslanadi: Bu 10 Intsni saqlaydigan yangi o'zgaruvchan massivni belgilaydi. E'tibor bering, Q# dagi massivlar o'zgarmas uzunlikda va ular barcha elementlar uchun bir xil ma'lumotlar turiga ega; ular Python ro'yxatlariga o'xshamaydi. Massiv uzunligini (o‘lchamini) olish Length funksiyasi yordamida amalga oshiriladi: Massivdan elementni olish ko'pgina klassik tillarda bo'lgani kabi kvadrat qavslar bilan amalga oshiriladi: Bu massivdagi to'rtinchi elementni oladi (massivlar Q# da nol indekslangan). Afsuski, Q# da massiv elementlarini o'zgartirish biroz g'alati . Buning sababi shundaki, massivlarning o'zi o'zgarmasdir (ularning elementlari bo'lmasa ham), shuning uchun massivni o'zgartirish yangi massiv yaratish, tarkibini ko'chirish va nusxalash jarayonida tegishli indekslarni o'zgartirishni anglatadi. Elementlarni o'zgartirish ushbu sintaksis bilan amalga oshiriladi: let rangeWithStep = 0..2..10; let negativeRange = 10..-1..1; mutable intArray = new Int[10]; let arrayLength = Length(intArray); let array3 = intArray[3]; set intArray w/= 3 <- 22; 17.12.2022, 10:07 Q# ga kirish - Kvant dasturiy ta'minotini ishlab chiqishga kirish https://stem.mitre.org/quantum/software-tools/intro-qsharp.html 8/10 Ushbu noodatiy sintaksis "qo'llash va almashtirish" operatori deb ataladi. U asosan intArray qiymatlarini bir xil o'lchamdagi va turdagi yangi massivga ko'chiradi, lekin 3-indeksdagi elementni 22 qiymatiga almashtiradi, so'ngra intArray o'zgaruvchisini yangi massivga tayinlaydi. Bu kabi bayonot bilan bir xil ishni samarali bajaradi intArray[3] = 22; , faqat qopqoq ostida bir nechta nusxa ko'chirish bilan. Aslida, an'anaviy sintaksis Q# ning oldingi versiyasiga kiritilgan, ammo ular massivlarning o'zgarmasligini ta'minlash uchun undan xalos bo'lishdi. Muayyan uzunlikdagi yangi massiv yaratish va uni for tsikli davomida yangilash o'rniga, ro'yxatga shunchaki elementlarni qo'shish osonroq bo'ladi. Massivga elementlar qo'shish quyidagicha amalga oshirilishi mumkin: Bu massivni 1 elementga va oxirida element sifatida "8" ga oshiradi. Har qanday o‘lchamdagi massivlar shu tarzda birlashtirilishi mumkin, ularni elementma-element bajarish shart emas. Q# dagi massivlar bilan bir nechta boshqa narsalarni qilishingiz mumkin (masalan, quyi to'plamlarni olish). Bularning barchasi QSharpReference faylida ko'rsatilgan. Oqimni boshqarish Q# kodni boshqarishning uchta asosiy usulini qo'llab-quvvatlaydi: if iboralari, for tsikllari va takrorlash-until tsikllari (bu do-while siklining teskarisiga o'xshaydi). Keling, birinchi ikkitasini ko'rib chiqaylik, chunki ular eng keng tarqalgan. Agar so'zlar boshqa C uslubidagi tillardagi kabi bajarilsa: elif else if boshqa tillardagi kabi . For looplar biroz boshqacha. Q# da C-uslubi for loop mavjud emas; Buning o'rniga, biz "har bir uchun" tsikli yoki sanab o'tish davrini ko'rib chiqadigan narsaga ega. U to'plamdagi barcha elementlarni shunday takrorlashi mumkin: set intArray += [8]; if someBool { // Do something } elif someOtherBool { // Do something else } else { // Do a third thing } 17.12.2022, 10:07 Q# ga kirish - Kvant dasturiy ta'minotini ishlab chiqishga kirish https://stem.mitre.org/quantum/software-tools/intro-qsharp.html 9/10 Buni an'anaviy C-uslubi for loop xatti-harakatlariga taqlid qiluvchi diapazonlar bilan ham qilish mumkin: Esda tutingki, diapazonning yakuniy qiymati diapazonga kiritilgan, shuning uchun agar siz massivning har bir indeksini takrorlamoqchi bo'lsangiz, uni minus 1 uzunligida tugatishingiz kerak, aks holda u chegaradan chiqib ketadi. Yagona Qubit Geyts Q# dagi kvant shlyuzlari argument sifatida bir kubitni qabul qiladigan operatsiyalar sifatida amalga oshiriladi (va darvozaga qarab boshqa argumentlar ham mumkin). Misol uchun, agar sizda "qubit" nomli kubit bo'lsa, X operatsiyasi X darvozasini kubitga qo'llaydi: The X o'qi atrofida o'zboshimchalik bilan aylanishni amalga oshiradigan darvoza, Rx shuningdek, aylanish burchagini qabul qiladigan funktsiya sifatida aniqlanadi: (E'tibor bering, PI() funktsiyasi faqat qiymatini olish uchun ishlatiladi .) Qubitni o'lchash M operatsiya bilan amalga oshiriladi: Download 250.35 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling