द्वारा विभाजित नहीं करने के लिए संख्या से बी को ढूंढना यह एक समस्या है जिसे मैं काफी समय से सोच रहा हूं।एक्स से y
एक्स से वाई तक किसी भी संख्या से विभाजित नहीं होने के लिए सभी संख्याओं को खोजने के लिए सबसे तेज़ तरीका क्या है?
इस पर विचार करें:
मैं 1 से 10 के सभी नंबरों को है कि 2 से 5 इस प्रक्रिया से विभाज्य नहीं कर रहे हैं खोजने के लिए बेहद धीमी गति से हो जाएगा अगर मैं जहां एक रेखीय दृष्टिकोण का उपयोग करना चाहते हैं; इस तरह:
result = []
a = 1
b = 10
x = 2
y = 5
for i in range(a,b):
t = False
for j in range(x,y):
if i%j==0:
t = True
break
if t is False:
result.append(i)
return result
किसी को भी एक रेखीय समाधान की तुलना में कम गणना समय के साथ ऐसा करने के किसी भी अन्य तरीकों में से पता है?
यदि नहीं, तो किसी को भी देख सकते हैं कि इस ताकत तेजी से किया जा, जैसा कि मैंने इस बिंदु पर खाली हूँ ...
निष्ठा से, जॉन
[संपादित करें]
संख्या की संख्या 0 से> 1, ई + 100
यह ए, बी, एक्स और वाई
के लिए सच है
क्या आप बड़े (बी-ए), बड़े बी, बड़े (वाई-एक्स), बड़े वाई या छोटे नंबरों के साथ कई बार कॉल करने के लिए अनुकूलित कर रहे हैं? मुझे संदेह है कि उत्तर उन प्रश्नों के आधार पर अलग-अलग होंगे – Patashu
यह समस्या का हिस्सा है: ए, बी, एक्स, वाई, प्रगतिशील रूप से बढ़ता है – JohnWO
क्या आप "1, ई + 100" के बजाय 1e100 लिखना नहीं चाहते थे? यदि यह मामला है, तो एक बहुत तेज विधि खोजना मुश्किल होगा, क्योंकि संख्याओं का सेट स्मृति में फिट नहीं है, या यहां तक कि एक हार्ड ड्राइव (दूर तक)। यदि संख्या गणना उचित है (1e8 के बारे में कहें, ताकि वे स्मृति में फिट हो जाएं), तो गति के लिए व्यापार स्मृति द्वारा एक तेज़ दृष्टिकोण प्राप्त किया जा सकता है। – EOL