Forwarded from Python3
آموزش الگوریتمهای کوانتومی – پارت ۸: آشنایی با گیتهای چندکیوبیتی و entanglement
هدف پارت هشتم
در این بخش، با گیتهای چندکیوبیتی و مفهوم entanglement (درهمتنیدگی) آشنا میشویم که یکی از ویژگیهای اساسی محاسبات کوانتومی است. این مفاهیم نقش کلیدی در ایجاد و پیادهسازی الگوریتمهای کوانتومی دارند.
گیتهای چندکیوبیتی
گیتهای چندکیوبیتی، برخلاف گیتهای تککیوبیتی که تنها روی یک کیوبیت اعمال میشوند، روی دو یا چند کیوبیت به صورت همزمان اثر میگذارند. این گیتها امکان ایجاد ارتباط بین کیوبیتها را فراهم کرده و پایهگذار مفهوم entanglement هستند.
گیتهای رایج دوکیوبیتی
1. گیت CNOT (Controlled-NOT)
این گیت روی دو کیوبیت، به نامهای کنترل و هدف، اعمال میشود. اگر مقدار کیوبیت کنترل برابر 1 باشد، عملگر NOT روی کیوبیت هدف اعمال میشود. جدول صحت این گیت به صورت زیر است:
ورودی | خروجی
00 → 00
01 → 01
10 → 11
11 → 10
2. گیت SWAP
این گیت مقدار دو کیوبیت را با هم جابجا میکند. اگر ورودی دو کیوبیت a و b باشد، خروجی آن به صورت b و a خواهد بود.
Entanglement (درهمتنیدگی)
درهمتنیدگی حالتی است که در آن کیوبیتها به گونهای به هم مرتبط میشوند که وضعیت یک کیوبیت به طور مستقیم با وضعیت کیوبیت دیگر وابسته است، حتی اگر فاصله زیادی بین آنها وجود داشته باشد. این ویژگی یکی از تفاوتهای اصلی بین محاسبات کلاسیک و کوانتومی است.
ایجاد درهمتنیدگی با استفاده از گیت هادامارد و CNOT
یک روش ساده برای ایجاد entanglement بین دو کیوبیت به صورت زیر است:
1. اعمال گیت هادامارد روی کیوبیت اول برای ایجاد حالت ابرموقعیت.
2. اعمال گیت CNOT با کیوبیت اول به عنوان کنترل و کیوبیت دوم به عنوان هدف.
این عملیات حالت entانگل شده زیر را ایجاد میکند:
|ψ⟩ = (1 / √2) (|00⟩ + |11⟩)
این بدان معناست که اگر کیوبیت اول را اندازهگیری کرده و مقدار آن 0 باشد، کیوبیت دوم نیز 0 خواهد بود و اگر کیوبیت اول برابر 1 باشد، کیوبیت دوم نیز 1 خواهد بود.
مثال از پیادهسازی entanglement در Qiskit
در ادامه، یک کد ساده برای ایجاد درهمتنیدگی بین دو کیوبیت را مشاهده میکنید:
توضیح کد
1. ابتدا یک مدار کوانتومی با دو کیوبیت تعریف شده است.
2. گیت هادامارد روی کیوبیت اول اعمال شده تا حالت ابرموقعیت ایجاد شود.
3. گیت CNOT روی دو کیوبیت اعمال شده تا entanglement ایجاد شود.
4. در نهایت، کیوبیتها اندازهگیری شده و نتیجه اجرا به صورت هیستوگرام نمایش داده میشود.
نتیجه اجرای کد
خروجی به صورت یک هیستوگرام خواهد بود که نشان میدهد حالات 00 و 11 با احتمال مساوی ظاهر میشوند، در حالی که حالات 01 و 10 اصلاً دیده نمیشوند. این نشاندهنده ایجاد موفقیتآمیز درهمتنیدگی بین دو کیوبیت است.
پارت بعدی:
در پارت ۹، با الگوریتم دیچک (Deutsch Algorithm) آشنا خواهیم شد که یکی از اولین الگوریتمهای کوانتومی است و نشان میدهد چگونه محاسبات کوانتومی میتوانند از محاسبات کلاسیک سریعتر باشند.
ادامه دارد...
برای بیشتر یاد گرفتن اینجا کلیک کن
هدف پارت هشتم
در این بخش، با گیتهای چندکیوبیتی و مفهوم entanglement (درهمتنیدگی) آشنا میشویم که یکی از ویژگیهای اساسی محاسبات کوانتومی است. این مفاهیم نقش کلیدی در ایجاد و پیادهسازی الگوریتمهای کوانتومی دارند.
گیتهای چندکیوبیتی
گیتهای چندکیوبیتی، برخلاف گیتهای تککیوبیتی که تنها روی یک کیوبیت اعمال میشوند، روی دو یا چند کیوبیت به صورت همزمان اثر میگذارند. این گیتها امکان ایجاد ارتباط بین کیوبیتها را فراهم کرده و پایهگذار مفهوم entanglement هستند.
گیتهای رایج دوکیوبیتی
1. گیت CNOT (Controlled-NOT)
این گیت روی دو کیوبیت، به نامهای کنترل و هدف، اعمال میشود. اگر مقدار کیوبیت کنترل برابر 1 باشد، عملگر NOT روی کیوبیت هدف اعمال میشود. جدول صحت این گیت به صورت زیر است:
ورودی | خروجی
00 → 00
01 → 01
10 → 11
11 → 10
2. گیت SWAP
این گیت مقدار دو کیوبیت را با هم جابجا میکند. اگر ورودی دو کیوبیت a و b باشد، خروجی آن به صورت b و a خواهد بود.
Entanglement (درهمتنیدگی)
درهمتنیدگی حالتی است که در آن کیوبیتها به گونهای به هم مرتبط میشوند که وضعیت یک کیوبیت به طور مستقیم با وضعیت کیوبیت دیگر وابسته است، حتی اگر فاصله زیادی بین آنها وجود داشته باشد. این ویژگی یکی از تفاوتهای اصلی بین محاسبات کلاسیک و کوانتومی است.
ایجاد درهمتنیدگی با استفاده از گیت هادامارد و CNOT
یک روش ساده برای ایجاد entanglement بین دو کیوبیت به صورت زیر است:
1. اعمال گیت هادامارد روی کیوبیت اول برای ایجاد حالت ابرموقعیت.
2. اعمال گیت CNOT با کیوبیت اول به عنوان کنترل و کیوبیت دوم به عنوان هدف.
این عملیات حالت entانگل شده زیر را ایجاد میکند:
|ψ⟩ = (1 / √2) (|00⟩ + |11⟩)
این بدان معناست که اگر کیوبیت اول را اندازهگیری کرده و مقدار آن 0 باشد، کیوبیت دوم نیز 0 خواهد بود و اگر کیوبیت اول برابر 1 باشد، کیوبیت دوم نیز 1 خواهد بود.
مثال از پیادهسازی entanglement در Qiskit
در ادامه، یک کد ساده برای ایجاد درهمتنیدگی بین دو کیوبیت را مشاهده میکنید:
from qiskit import QuantumCircuit, Aer, assemble
from qiskit.visualization import plot_histogram
# ایجاد مدار کوانتومی با 2 کیوبیت
qc = QuantumCircuit(2)
# اعمال گیت هادامارد روی کیوبیت اول
qc.h(0)
# اعمال گیت CNOT با کیوبیت 0 به عنوان کنترل و کیوبیت 1 به عنوان هدف
qc.cx(0, 1)
# اندازهگیری
qc.measure_all()
# اجرای مدار
backend = Aer.get_backend('qasm_simulator')
qobj = assemble(qc)
result = backend.run(qobj).result()
counts = result.get_counts()
# نمایش هیستوگرام نتایج
plot_histogram(counts)
توضیح کد
1. ابتدا یک مدار کوانتومی با دو کیوبیت تعریف شده است.
2. گیت هادامارد روی کیوبیت اول اعمال شده تا حالت ابرموقعیت ایجاد شود.
3. گیت CNOT روی دو کیوبیت اعمال شده تا entanglement ایجاد شود.
4. در نهایت، کیوبیتها اندازهگیری شده و نتیجه اجرا به صورت هیستوگرام نمایش داده میشود.
نتیجه اجرای کد
خروجی به صورت یک هیستوگرام خواهد بود که نشان میدهد حالات 00 و 11 با احتمال مساوی ظاهر میشوند، در حالی که حالات 01 و 10 اصلاً دیده نمیشوند. این نشاندهنده ایجاد موفقیتآمیز درهمتنیدگی بین دو کیوبیت است.
پارت بعدی:
در پارت ۹، با الگوریتم دیچک (Deutsch Algorithm) آشنا خواهیم شد که یکی از اولین الگوریتمهای کوانتومی است و نشان میدهد چگونه محاسبات کوانتومی میتوانند از محاسبات کلاسیک سریعتر باشند.
ادامه دارد...
برای بیشتر یاد گرفتن اینجا کلیک کن
❤3👍1
Forwarded from Python3
آموزش الگوریتمهای کوانتومی – پارت ۹: گیتهای چندکیوبیتی و درهمتنیدگی (Entanglement)
هدف پارت نهم
در این پارت، به بررسی گیتهای چندکیوبیتی و مفهوم درهمتنیدگی (Entanglement) میپردازیم که یکی از مهمترین ویژگیهای محاسبات کوانتومی است. درهمتنیدگی به ما این امکان را میدهد که با استفاده از گیتهای خاص، حالتهایی ایجاد کنیم که بین چند کیوبیت بهطور وابسته عمل میکنند.
گیت CNOT
یکی از مهمترین گیتهای دوکیوبیتی، گیت CNOT است که یک گیت کنترلی است. این گیت به این شکل عمل میکند:
- اگر کیوبیت کنترلی برابر با 0 باشد، کیوبیت هدف تغییر نمیکند.
- اگر کیوبیت کنترلی برابر با 1 باشد، کیوبیت هدف NOT میشود (حالتش برعکس میشود).
به زبان ساده:
ایجاد درهمتنیدگی با گیت CNOT و H
حالا میخواهیم با استفاده از گیت هادامارد (H) و گیت CNOT یک حالت درهمتنیده ایجاد کنیم. حالت درهمتنیده معروف Bell به شکل زیر ساخته میشود:
1. ابتدا هر دو کیوبیت در حالت اولیه |0⟩ هستند.
2. یک گیت هادامارد روی کیوبیت اول اعمال میکنیم:
3. سپس یک گیت CNOT روی هر دو کیوبیت اعمال میکنیم که کیوبیت اول بهعنوان کنترلی عمل میکند:
این حالت درهمتنیدگی کامل دو کیوبیت را نشان میدهد، به این معنی که اگر یکی از کیوبیتها را اندازهگیری کنیم، کیوبیت دیگر نیز بهطور آنی وضعیت متناظر را خواهد داشت.
مثال پیادهسازی در Qiskit
در اینجا، یک مدار ساده برای ایجاد حالت Bell را پیادهسازی میکنیم:
توضیح کد
1. ایجاد مدار:
مدار شامل دو کیوبیت و دو بیت کلاسیک است که برای ذخیره نتایج اندازهگیری استفاده میشوند.
2. اعمال گیت هادامارد:
گیت هادامارد روی کیوبیت 0 اعمال شده و آن را در حالت سوپریپوزیشن قرار میدهد.
3. اعمال گیت CNOT:
این گیت کیوبیت 1 را با توجه به وضعیت کیوبیت 0 تغییر میدهد و حالت درهمتنیده ایجاد میکند.
4. اندازهگیری:
کیوبیتها اندازهگیری شده و نتایج آنها در بیتهای کلاسیک ذخیره میشود.
5. نمایش نتیجه:
نتیجه شامل مقادیر اندازهگیریشده خواهد بود که بهطور معمول شامل حالتهای 00 و 11 است.
نتیجه اجرای کد
خروجی ممکن است به شکل زیر باشد:
این خروجی نشان میدهد که مدار کوانتومی بهدرستی حالت Bell را ایجاد کرده است.
تمرین برای شما:
1. مدار را بهگونهای تغییر دهید که به جای ایجاد حالت |00⟩ + |11⟩، حالت |01⟩ + |10⟩ ایجاد کند.
2. توضیح دهید که چگونه درهمتنیدگی در الگوریتمهای کوانتومی مانند الگوریتم شُر و الگوریتم گروور استفاده میشود.
پارت بعدی:
در پارت ۱۰، به بررسی تحلیل فوریه کوانتومی (QFT) و کاربرد آن در الگوریتمهای کوانتومی میپردازیم.
ادامه دارد...
برای بیشتر یاد گرفتن اینجا کلیک کن
هدف پارت نهم
در این پارت، به بررسی گیتهای چندکیوبیتی و مفهوم درهمتنیدگی (Entanglement) میپردازیم که یکی از مهمترین ویژگیهای محاسبات کوانتومی است. درهمتنیدگی به ما این امکان را میدهد که با استفاده از گیتهای خاص، حالتهایی ایجاد کنیم که بین چند کیوبیت بهطور وابسته عمل میکنند.
گیت CNOT
یکی از مهمترین گیتهای دوکیوبیتی، گیت CNOT است که یک گیت کنترلی است. این گیت به این شکل عمل میکند:
- اگر کیوبیت کنترلی برابر با 0 باشد، کیوبیت هدف تغییر نمیکند.
- اگر کیوبیت کنترلی برابر با 1 باشد، کیوبیت هدف NOT میشود (حالتش برعکس میشود).
به زبان ساده:
CNOT |00⟩ = |00⟩
CNOT |01⟩ = |01⟩
CNOT |10⟩ = |11⟩
CNOT |11⟩ = |10⟩
ایجاد درهمتنیدگی با گیت CNOT و H
حالا میخواهیم با استفاده از گیت هادامارد (H) و گیت CNOT یک حالت درهمتنیده ایجاد کنیم. حالت درهمتنیده معروف Bell به شکل زیر ساخته میشود:
1. ابتدا هر دو کیوبیت در حالت اولیه |0⟩ هستند.
2. یک گیت هادامارد روی کیوبیت اول اعمال میکنیم:
|ψ⟩ = H|0⟩ = 1/√2 * (|0⟩ + |1⟩)
3. سپس یک گیت CNOT روی هر دو کیوبیت اعمال میکنیم که کیوبیت اول بهعنوان کنترلی عمل میکند:
|ψ⟩ = 1/√2 * (|00⟩ + |11⟩)
این حالت درهمتنیدگی کامل دو کیوبیت را نشان میدهد، به این معنی که اگر یکی از کیوبیتها را اندازهگیری کنیم، کیوبیت دیگر نیز بهطور آنی وضعیت متناظر را خواهد داشت.
مثال پیادهسازی در Qiskit
در اینجا، یک مدار ساده برای ایجاد حالت Bell را پیادهسازی میکنیم:
from qiskit import QuantumCircuit, Aer, execute
# ایجاد یک مدار کوانتومی با 2 کیوبیت و 2 کلاسیک
qc = QuantumCircuit(2, 2)
# اعمال گیت هادامارد روی کیوبیت 0
qc.h(0)
# اعمال گیت CNOT با کیوبیت 0 بهعنوان کنترل و کیوبیت 1 بهعنوان هدف
qc.cx(0, 1)
# اندازهگیری کیوبیتها
qc.measure([0, 1], [0, 1])
# اجرای مدار روی شبیهساز
backend = Aer.get_backend('qasm_simulator')
result = execute(qc, backend, shots=1000).result()
# نمایش نتیجه
counts = result.get_counts()
print("نتایج اندازهگیری:", counts)
توضیح کد
1. ایجاد مدار:
مدار شامل دو کیوبیت و دو بیت کلاسیک است که برای ذخیره نتایج اندازهگیری استفاده میشوند.
2. اعمال گیت هادامارد:
گیت هادامارد روی کیوبیت 0 اعمال شده و آن را در حالت سوپریپوزیشن قرار میدهد.
3. اعمال گیت CNOT:
این گیت کیوبیت 1 را با توجه به وضعیت کیوبیت 0 تغییر میدهد و حالت درهمتنیده ایجاد میکند.
4. اندازهگیری:
کیوبیتها اندازهگیری شده و نتایج آنها در بیتهای کلاسیک ذخیره میشود.
5. نمایش نتیجه:
نتیجه شامل مقادیر اندازهگیریشده خواهد بود که بهطور معمول شامل حالتهای 00 و 11 است.
نتیجه اجرای کد
خروجی ممکن است به شکل زیر باشد:
نتایج اندازهگیری: {'00': 512, '11': 488}
این خروجی نشان میدهد که مدار کوانتومی بهدرستی حالت Bell را ایجاد کرده است.
تمرین برای شما:
1. مدار را بهگونهای تغییر دهید که به جای ایجاد حالت |00⟩ + |11⟩، حالت |01⟩ + |10⟩ ایجاد کند.
2. توضیح دهید که چگونه درهمتنیدگی در الگوریتمهای کوانتومی مانند الگوریتم شُر و الگوریتم گروور استفاده میشود.
پارت بعدی:
در پارت ۱۰، به بررسی تحلیل فوریه کوانتومی (QFT) و کاربرد آن در الگوریتمهای کوانتومی میپردازیم.
ادامه دارد...
برای بیشتر یاد گرفتن اینجا کلیک کن
❤4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
کاربران ویندوز ۱۱ نگاه کنن😳
💻میدونستی میتونی توی ویندوز ۱۱ چندین
دسکتاپ داشته باشی؟؟🖥
کانال رو دنبال داشته باشید❤️
💻میدونستی میتونی توی ویندوز ۱۱ چندین
دسکتاپ داشته باشی؟؟🖥
کانال رو دنبال داشته باشید❤️
🔥4👍1
import os
import sys
def get_hidden_password(prompt="Enter your password: "):
password = ""
sys.stdout.write(prompt)
sys.stdout.flush()
while True:
char = sys.stdin.read(1)
if char == "\n":
break
elif char == "\b":
password = password[:-1]
else:
password += char
sys.stdout.write("*")
sys.stdout.flush()
return password
def main():
correct_password = "Amir_123_ka"
while True:
user_password = get_hidden_password()
if user_password == correct_password:
print("\nWelcome!")
break
else:
print("\nIncorrect password, please try again.")
if name == "main":
main()
برنامه پسورد با پایتون
🔥5
در حال ساخت برنامه paint
امید بدید😅❤️
امید بدید😅❤️
❤6👍1
و تمامممممممممممم
😁4
هر کس میتونه مثل برنامه من درست کنه و توی پیوی با کداش بفرسته
@Amir_123_ka
@Amir_123_ka
اگر میخواید یکم دوستاتون رو اذیت کنید کافیه کد زیر رو در قالب برنامه ویندوزی با Tkinter در بیارید😁:
(صفحه نمایش رو هر 1 ثانیه میچرخونه)
از کتابخانه time و rotatescreen استفاده شده که برای دومی نیازه از طریق pip نصب کنید:
```
display = rs.get_primary_display()
display.rotate_to(x)
صفحه نمایش رو به زاویه x درجه میچرخونه که x بر اساس اون پیمایشی که از طریق حلقه for بر روی لیست داره هستش و time.sleep(1) هر 1ثانیه اجرا میشه😁
(صفحه نمایش رو هر 1 ثانیه میچرخونه)
import time
import rotatescreen
import rotatescreen as rs
display = rs.get_primary_display()
listOfAngels = [90,180,270,0]
while True:
for x in listOfAngels:
display.rotate_to(x)
time.sleep(1)
از کتابخانه time و rotatescreen استفاده شده که برای دومی نیازه از طریق pip نصب کنید:
pip install rotate-screen
```
display = rs.get_primary_display()
کارش اینه میاد صفحه نمایش رو ایجاد میکنه
و بعد در listOfAngels زوایا مشخص شده که اولین مورد: 90 درجه عمودی،180 چرخش معکوس،،270درجه عمودی در سمت چپ و 0 در حالت افقی اولیه
یه حلقه while تعریف شده و تا زمانی که شرطش برقرار هست حلقه for داخلش بی نهایت تکرار میشه
display.rotate_to(x)
`
صفحه نمایش رو به زاویه x درجه میچرخونه که x بر اساس اون پیمایشی که از طریق حلقه for بر روی لیست داره هستش و time.sleep(1) هر 1ثانیه اجرا میشه😁
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
🔹۶ نکته ی مهم برای برنامه نویس های پایتون 🔹
❤5