वर्तमान में, मैं एक अजगर समस्या की तलाश कर रहा हूं, जहां मैं एक सूची में दो मान खोजना चाहता हूं, जिसके लिए अंतर एक विशिष्ट संख्या के सबसे करीब है।

उदाहरण के लिए, मैं A में दो मानों को खोजना चाहता हूं जिनके लिए अंतर 2 के सबसे करीब है।

ए = [1,5,9,10,20,7]

इस मामले में, उत्तर 5 और 7 होना चाहिए।

बाधा यह है कि आप हमेशा A[N+x] - A[N] करेंगे। उदाहरण के लिए, आपको 5-9 करने की अनुमति नहीं है। उस स्थिति में, यह हमेशा 9-5 रहेगा

क्या यह पायथन में संभव होगा?

मदद के लिए पहले ही धन्यवाद।

0
Beertje 8 जिंदा 2021, 15:29
तुमने अब तक क्या प्रयास किया है?
 – 
Karl
8 जिंदा 2021, 15:32
यदि यह किसी वेब साइट से है - क्या आप लिंक शामिल कर सकते हैं? यह दो सम समस्या भिन्नता की तरह लगता है।
 – 
Daniel Hao
8 जिंदा 2021, 15:40

1 उत्तर

सबसे बढ़िया उत्तर

क्या ५,७ और ९,७ का अंतर ९,१० से २ के करीब नहीं है, बशर्ते कि वे अंतर ठीक २ हों? मुझे यकीन नहीं है कि आप उन सभी जोड़ों को छूट दे रहे हैं जिनके अंतर बिल्कुल 2 हैं। यहां कुछ कोड दिए गए हैं जिन्हें आप तदनुसार संशोधित कर सकते हैं यदि आपको उन मूल्यों को छूट देने की आवश्यकता है जिनका अंतर बिल्कुल 2 है।

import itertools

list_ = [1,5,9,10,20,7]
all_pairs = list(itertools.combinations(list_, 2))
pairs = {key:key[0]-key[1] if key[0]-key[1]>=0 else key[1]-key[0] for key in 
all_pairs}

def takeClosest(num,collection):
    return min(collection,key=lambda key_: abs(collection[key_]-num))

print(takeClosest(2,pairs))

उम्मीद है कि मदद करता है, यदि नहीं, तो कृपया 9,10 उदाहरण को थोड़ा और स्पष्ट करें।

1
Man'sNotCharlesBabbage 8 जिंदा 2021, 16:52