मान लीजिए कि एक सेंसर मॉड्यूल है जो r के दायरे तक अपने आस-पास के वातावरण की निगरानी कर सकता है। मॉड्यूल के मॉनिटरिंग सर्कल के जाली बिंदु में कुछ चीजें हैं जिन पर नजर रखने की जरूरत है। इसलिए, k संख्या में कम-शक्ति वाले मॉड्यूल रखे गए हैं ताकि वे केवल उन विशिष्ट बिंदुओं की निगरानी कर सकें। त्रिज्या के वर्ग और कम शक्ति वाले मॉड्यूल की k संख्या को देखते हुए, हमें यह पता लगाना होगा कि क्या बिंदुओं की सही निगरानी की जा सकती है। यदि निगरानी संभव हो तो हम सही लौटते हैं, अन्यथा, हम झूठी वापसी करते हैं।
इसलिए, यदि इनपुट त्रिज्या (j) =4 के वर्ग की तरह है, निगरानी बिंदुओं की संख्या (k) =3, तो आउटपुट गलत होगा
यदि j =4, निगरानी वृत्त की परिधि पर 4 बिंदु हैं; जो हैं:(0,2), (0,-2), (2,0), और (-2,0)। इसलिए, अगर हम तीन नए निगरानी स्टेशन शुरू करते हैं, तो हम पूरी तरह से बिंदुओं की निगरानी नहीं कर सकते।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- square_set :=एक सेट जिसमें 44721 तक के मानों का वर्ग होता है
- मैं :=0
- res :=0
- जबकि मैं <(j ^ 0.5), करते हैं
- अगर (j - i ^ 2) वर्ग_सेट में मौजूद है, तो
- रेस :=रेस + 1
- i :=i + 1
- अगर (j - i ^ 2) वर्ग_सेट में मौजूद है, तो
- रेस :=रेस * 4
- यदि k>=res, तो
- सही लौटें
- अन्यथा,
- झूठी वापसी
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
square_set = set([z ** 2 for z in range(44722)]) def solve(j, k): i = 0 res = 0 while i < (j ** 0.5): if j - i ** 2 in square_set: res += 1 i += 1 res *= 4 if k >= res: return True else: return False print(solve(4, 3))
इनपुट
4, 3
आउटपुट
False