ফাংশন : কেবল একটি বিট স্ট্রিং এর একটি অবাধ বুলিয়ান ফাংশন । [1] , [2] , বা [3] এর মতো ক্রিপ্টোগ্রাফি ভাঙার অ্যাপ্লিকেশনগুলির জন্য , এটি আসলে একটি 'ডাটাবেস অনুসন্ধান' নয়, যা পুরো ডেটাবেসটিকে কোনওভাবে কোয়ান্টাম সার্কিট হিসাবে সংরক্ষণ করার প্রয়োজন হবে, বরং একটি ফাংশন যেমনff:{0,1}n→{0,1}
x↦{1,0,if SHA-256(x)=y;otherwise,
স্থির , যার কোনও কাঠামো নেই যা আমরা শাস্ত্রীয় অনুসন্ধানের জন্য কাজে লাগাতে পারি, বলি না, ফাংশনটি unlikey
x↦{1,0,if 2x≡y(mod22048−1942289),otherwise,
একটি কাঠামোগত রয়েছে যা এমনকি এটি একটি ধ্রুপদী কম্পিউটারে আরও দ্রুত রূপান্তর করতে কাজে লাগানো যেতে পারে ।
নির্দিষ্ট ব্যয়ের প্রশ্নের জবাব সাধারণভাবে দেওয়া যায় না কারণ যে কোনও সার্কিট হতে পারে a এটি ক্লাসিকাল সার্কিটের বাইরে কোয়ান্টাম সার্কিট তৈরির বিষয় মাত্র । তবে সাধারণত, উদাহরণস্বরূপ, ক্লাসিকাল কম্পিউটারে ফাংশনটি মূল্যায়নের জন্য খুব সস্তা, সুতরাং এটি কোয়ান্টাম কম্পিউটারের উপর বিশেষভাবে গুরুতর বোঝা চাপানো উচিত নয় যার জন্য গ্রোভারের অ্যালগরিদম সম্পর্কে সমস্ত কিছু আপনার বাজেটের মধ্যে রয়েছে।ff
শীর্ষে কেবলমাত্র সাধারণ ব্যয় হ'ল অতিরিক্ত শর্তসাপেক্ষ নট গেট যেখানে এক্সর এবং এটির জন্য একটি অতিরিক্ত আনুষঙ্গিক কুইট। বিশেষত, যদি আমাদের একটি সার্কিট বাইরে তৈরি করা হয়েছে এবং জন্য সার্কিট , তবে আমরা যদি প্রথমে রাজ্যে একটি আনুষঙ্গিক কুইট সহ একসাথে প্রয়োগ করি if যেখানেfC:|a⟩|b⟩→|a⟩|a⊕b⟩
⊕F:|x⟩|a⟩|junk⟩↦|x⟩|a⊕f(x)⟩|junk′⟩
Cf|x⟩|−⟩=H|1⟩=(1/2–√)(|0⟩−|1⟩)H একটি হাদামারড গেট, তারপর আমরা পাই
F|x⟩|−⟩|junk⟩=12–√(F|x⟩|0⟩|junk⟩−F|x⟩|1⟩|junk⟩)=12–√(|x⟩|f(x)⟩|junk′⟩−|x⟩|1⊕f(x)⟩|junk′⟩).
যদি তবে , তাই মাধ্যমে আমরা যেখানে যদি তবে , তাই এবং সাধারণভাবে এইভাবেf(x)=01⊕f(x)=1F|x⟩|−⟩|junk⟩=|x⟩|−⟩|junk′⟩,
f(x)=11⊕f(x)=0F|x⟩|−⟩|junk⟩=−|x⟩|−⟩|junk′⟩,
F|x⟩|−⟩|junk⟩=(−1)f(x)|x⟩|−⟩|junk′⟩.