कम से कम सामान्य गैर-भाजक N लॉग सी जितना बड़ा हो सकता है, लेकिन यदि एन संख्याओं को यादृच्छिक रूप से वितरित किया जाता है, तो कम से कम सामान्य गैर-भाजक संभवतः बहुत छोटा है, शायद एन की तुलना में बहुत कम है। primes किस संख्या के विभाजक हैं।
प्रत्येक अभाज्य संख्या p के लिए हमारे पास एक अनुक्रमणिका जिसका अर्थ है कि उस अनुक्रमणिका तक की सभी संख्याओं की जाँच p द्वारा विभाज्यता के लिए की गई है, और हमारे पास उन सभी नंबरों की एक सूची है, जिनके द्वारा विभाज्य थे।kp
फिर d = 2, 3, 4 के लिए, ... हम d द्वारा किसी संख्या को विभाज्य ज्ञात करने का प्रयास करते हैं, या यह दिखाते हैं कि कोई भी नहीं है। हम d का सबसे बड़ा मुख्य कारक p लेते हैं। फिर हम उन सभी नंबरों की जांच करते हैं जो पी द्वारा विभाज्य थे या नहीं, क्या वे भी डी से विभाज्य हैं। यदि कोई नहीं पाया जाता है, तो हम सूचकांकों> लिए p से विभाज्यता, अद्यतन करने और p द्वारा विभाज्य संख्याओं की सूची के साथ आगे की संख्याओं की जाँच करते हैं, और कि क्या प्रत्येक संख्या d से विभाज्य है।kpkp
यह जांचने के लिए कि क्या पी द्वारा विभाज्य संख्या है, हम औसत पी संख्याओं की जांच करते हैं। बाद में अगर हम जाँचते हैं कि क्या संख्या 2p से विभाज्य है, तो 50% संभावना है कि हमें केवल एक संख्या (जो कि p से विभाज्य है) की जाँच करने की आवश्यकता है, और औसत 2p अधिक संख्या पर जाँच के लिए 50% मौका। 3 पी द्वारा विभाज्य संख्या ज्ञात करना काफी तेजी से और इसी तरह संभव है, और हम कभी भी पी द्वारा विभाज्य के लिए एन संख्या से अधिक की जांच नहीं करते हैं, क्योंकि केवल एन नंबर हैं।
मुझे उम्मीद है कि यह डिवीजबिलिटी चेक के साथ काम करेगा ।N2/logN
पुनश्च। यादृच्छिक संख्या के लिए परिणाम कितना बड़ा होगा?
मान लें कि मेरे पास एन यादृच्छिक संख्या है। संभावना है कि एन संख्याओं में से एक डी द्वारा विभाज्य है - 1 (1 - 1 / डी) ^ एन। मैं इस संभावना को मानता हूं कि प्रत्येक संख्या 1 ≤ d a k यादृच्छिक संख्याओं में से एक का एक कारक है जो इन संभावनाओं को गुणा करके गणना की जाती है (ठीक है, यह थोड़ा विचित्र है, क्योंकि ये संभावनाएं काफी स्वतंत्र नहीं हैं)।
उस धारणा के साथ, N = 1000 के साथ, 50% संभावना है कि संख्या में से एक 1..244 किसी भी संख्या को विभाजित नहीं करता है, और एक अरब में है कि हर संख्या 507 तक संख्याओं में से एक को विभाजित करता है। N = 10,000 के साथ 50% संभावना है कि 1..1726 संख्याओं में से कोई भी संख्या को विभाजित नहीं करता है, और एक अरब में जो प्रत्येक संख्या 2979 तक एक संख्या को विभाजित करती है।
मैं चाहता हूं कि एन यादृच्छिक आदानों के लिए, परिणाम का आकार एन / एलएन एन की तुलना में थोड़ा बड़ा है; शायद N / ln N * (ln ln N) ^ 2 जैसा कुछ। यहाँ पर क्यों:
संभावना है कि एन यादृच्छिक संख्याओं में से कम से कम एक यादृच्छिक डी द्वारा विभाज्य है । यदि d N के चारों ओर है, तो लगभग 1 - exp (-1)। 0.6321 है। यह एक एकल भाजक के लिए है; संभावना है कि कई संख्याओं में से प्रत्येक d is N कम से कम एक N संख्या का भाजक है जो काफी पतला है, इसलिए अधिकतम d, N की तुलना में काफी छोटा होगा।1−(1−1/d)N1−(1−1/d)N
यदि d << N, तो ।1−(1−1/d)N≈1−exp(−N/d)
यदि घ ≈ एन / एन ln तो ।1−exp(−N/d)≈1−exp(−lnN)=1−1/N
हम इन संभावनाओं को N / ln N मान d के लिए जोड़ेंगे, लेकिन अधिकांश d के लिए परिणाम काफी बड़ा होगा, इसलिए सबसे बड़ा d किसी तरह N / ln N से बड़ा होगा, लेकिन N से काफी छोटा होगा।
पुनश्च। डी द्वारा विभाज्य संख्या खोजना:
हम d का सबसे बड़ा अभाज्य गुणनखंड उठाते हैं, और फिर हम पहले उन संख्याओं की जांच करते हैं जिन्हें पहले से ही p से विभाज्य माना जाता था। कह d = के.पी. फिर औसतन हम केवल उन संख्याओं की जाँच करते हैं जो इस विशेष d की जाँच करते समय p द्वारा विभाज्य हैं, और हम p द्वारा विभाज्य के लिए p, समग्र रूप से विभाज्यता के लिए सभी N मानों की जाँच करते हैं। वास्तव में, हम सबसे अधिक संभावना पी के लिए एन मानों की तुलना में कम जांच करते हैं, क्योंकि सभी एन मूल्यों की जांच के बाद एल्गोरिथ्म सबसे अधिक संभावना समाप्त होता है। इसलिए यदि परिणाम R है, तो मुझे उम्मीद है कि N मान से कम प्रत्येक R द्वारा विभाजित किया जा रहा है। R N N की तुलना में कम, यह N ^ 2 / लॉग एन चेक के बारे में है।
पुनश्च। कुछ परीक्षण चल रहे हैं
मैंने इस एल्गोरिथ्म को एन = 1,000,000 यादृच्छिक संख्याओं के साथ कुछ बार चलाया। 0. कम से कम सामान्य गैर-भाजक 68,000 और 128,000 के बीच था, जिसमें 100,000 और 120,000 के बीच अधिकांश रन थे। विभाजनों की संख्या 520 मिलियन और 1800 मिलियन के बीच थी जो कि (N / ln N) ^ 2 से बहुत कम है; 1000 और 1500 मिलियन डिवीजनों के बीच इस्तेमाल होने वाले अधिकांश मामले।