द्विआधारी खोज का उपयोग न केवल किसी सरणी में तत्वों को खोजने के लिए किया जा सकता है, बल्कि समीकरणों की जड़ों और मोनोटोनिक (बढ़ते या घटते) कार्यों के मूल्यों को खोजने के लिए भी किया जा सकता है।
आइए हम एक मोनोटोनिक फ़ंक्शन
f
और इस फ़ंक्शन का कुछ मान
C
दें। इस फ़ंक्शन के
x
तर्क का मान ज्ञात करें, जैसे
\(f(x)=C\)।
बढ़ते मोनोटोनिक फ़ंक्शन का उदाहरण:
हम ऐसी सीमाएँ चुनते हैं जहाँ फलन का मान दिए गए मान से ठीक अधिक और ठीक कम होता है। आइए इस खंड के मध्य में मान चुनें। यदि यह दिए गए से कम है, तो हम बाईं सीमा को खंड के मध्य में स्थानांतरित कर देते हैं। अन्यथा, हम दाहिनी सीमा को स्थानांतरित कर देंगे। अगला, हम सीमाओं को कम करने की प्रक्रिया को दोहराते हैं। लेकिन एक समस्या यह है कि खोजना कब बंद करें। और पढ़ें
यहां.
उदाहरण के लिए, संख्या x
का वर्गमूल ज्ञात करने की समस्या पर विचार करें। x
का वर्गमूल (\(\sqrt x\) द्वारा दर्शाया गया है) एक संख्या y
है जैसे कि \(y^2 = x\)।
आइए समस्या को इस प्रकार तैयार करते हैं: एक दी गई वास्तविक संख्या
x
(
\(x >= 1\)) के लिए निम्न का पता लगाएं डॉट के बाद कम से कम 5 वर्णों की सटीकता के साथ वर्गमूल।
खोज के लिए खंड की सीमा का चयन करना
चूंकि हम संख्याओं की संपूर्ण अनंतता की जांच नहीं कर सकते हैं, इसलिए हमें जड़ की खोज की सीमाओं को परिभाषित करने की आवश्यकता है। सबसे पहले, बाईं सीमा का पता लगाएं, एक मनमाना नकारात्मक बिंदु चुनें (उदाहरण के लिए: -1)। हम इसे तब तक दोगुना करेंगे जब तक कि इसमें दिया गया मान दिए गए मान से अधिक न हो जाए। सही सीमा खोजने के लिए, हम एक मनमाना सकारात्मक बिंदु चुनते हैं (उदाहरण के लिए: 1)। हम इसे तब तक दोगुना करेंगे जब तक कि इस बिंदु पर फ़ंक्शन का मान निर्दिष्ट मान से कम न हो जाए।
या, यदि हम खोज की सीमाओं को सटीक रूप से जानते हैं, तो हम 1 को बाईं सीमा के रूप में ले सकते हैं, और स्वयं संख्या
x
।
उसके बाद, हम वर्तमान खंड को आधे में विभाजित करते हैं, मध्य को वर्गाकार करते हैं, और यदि यह x से बड़ा है, तो ऊपरी फलक को बदलें, अन्यथा नीचे।
अंतिम कार्यान्वयन: