Module: मोनोटोनिक फ़ंक्शन के लिए बाइनरी खोज


Problem

1/5

मोनोटोनिक फ़ंक्शन के लिए बाइनरी खोज

Theory Click to read/hide

द्विआधारी खोज का उपयोग न केवल किसी सरणी में तत्वों को खोजने के लिए किया जा सकता है, बल्कि समीकरणों की जड़ों और मोनोटोनिक (बढ़ते या घटते) कार्यों के मूल्यों को खोजने के लिए भी किया जा सकता है।

आइए हम एक मोनोटोनिक फ़ंक्शन f और इस फ़ंक्शन का कुछ मान C दें। इस फ़ंक्शन के x तर्क का मान ज्ञात करें, जैसे \(f(x)=C\)
 
बढ़ते मोनोटोनिक फ़ंक्शन का उदाहरण:


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


खोज के लिए खंड की सीमा का चयन करना

चूंकि हम संख्याओं की संपूर्ण अनंतता की जांच नहीं कर सकते हैं, इसलिए हमें जड़ की खोज की सीमाओं को परिभाषित करने की आवश्यकता है। सबसे पहले, बाईं सीमा का पता लगाएं, एक मनमाना नकारात्मक बिंदु चुनें (उदाहरण के लिए: -1)। हम इसे तब तक दोगुना करेंगे जब तक कि इसमें दिया गया मान दिए गए मान से अधिक न हो जाए। सही सीमा खोजने के लिए, हम एक मनमाना सकारात्मक बिंदु चुनते हैं (उदाहरण के लिए: 1)। हम इसे तब तक दोगुना करेंगे जब तक कि इस बिंदु पर फ़ंक्शन का मान निर्दिष्ट मान से कम न हो जाए।


या, यदि हम खोज की सीमाओं को सटीक रूप से जानते हैं, तो हम 1 को बाईं सीमा के रूप में ले सकते हैं, और स्वयं संख्या x
उसके बाद, हम वर्तमान खंड को आधे में विभाजित करते हैं, मध्य को वर्गाकार करते हैं, और यदि यह x से बड़ा है, तो ऊपरी फलक को बदलें, अन्यथा  नीचे।
 
अंतिम कार्यान्वयन:

कहाँ,
eps - वह सटीकता जिसके समाधान की तलाश की जानी चाहिए,
x - दी गई संख्या जिसका वर्गमूल हम ढूंढ रहे हैं,
m - वह संख्या जिसमें परिणाम एल्गोरिथम निष्पादित होने के बाद संग्रहीत किया जाएगा।
 

Problem

एक प्राकृत संख्या x दी गई है। किसी संख्या के घनमूल की गणना करें।
 
इनपुट
संख्या <कोड>x – प्राकृतिक, \(10^6\) से अधिक नहीं।
 
आउटपुट
प्रोग्राम को एक ही संख्या प्रदर्शित करनी चाहिए: कम से कम 6 दशमलव स्थानों की सटीकता के साथ समस्या का उत्तर।

 

उदाहरण
<टेबल क्लास = "टेबल-बॉर्डर्ड टेबल-लिस्ट-टेस्ट टेबल-एसएम टेबल-स्ट्राइप्ड"> <सिर> <वें># <वें>इनपुट <वें>आउटपुट <शरीर> 1 2 1.259921