সর্বনিম্ন সাধারণ অবিভাজকটি এন লগ সি-এর মতো বৃহত্তর হতে পারে তবে এন সংখ্যাগুলি এলোমেলোভাবে বিতরণ করা হয় তবে কমপক্ষে সাধারণ অবিভাজক সম্ভবত অনেক ছোট, সম্ভবত এন এর চেয়ে অনেক কম which প্রাইমগুলি কোন সংখ্যার বিভাজক।
প্রতিটি প্রাইম সংখ্যা পি এর জন্য আমাদের একটি সূচক যার অর্থ সেই সূচী পর্যন্ত সমস্ত সংখ্যা পি দ্বারা বিভাজ্যতার জন্য পরীক্ষা করা হয়েছিল, এবং আমাদের সেই সংখ্যার একটি তালিকা রয়েছে যা দ্বারা বিভাজ্য ছিল।টপি
তারপরে d = 2, 3, 4, ... এর জন্য আমরা d দ্বারা বিভাজ্য একটি সংখ্যা খুঁজে বের করার চেষ্টা করি, বা দেখায় কোনটি নেই। আমরা ডি এর বৃহত্তম প্রাইম ফ্যাক্টর গ্রহণ করি। তারপরে আমরা সমস্ত সংখ্যা যা পি দ্বারা বিভাজ্য ছিল তা চেক করে সেগুলি ডি দ্বারা বিভাজ্য কিনা whether যদি পাওয়া না যায়, তবে আমরা পি দ্বারা বিভাজ্যতার জন্য সূচকগুলি> সহ আরও নম্বরগুলি পরীক্ষা করব , আপডেট এবং পি দ্বারা বিভাজ্য সংখ্যাগুলির তালিকাটি পরীক্ষা করবো এবং প্রতিটি সংখ্যা ডি দ্বারা বিভাজ্য কিনা তা পরীক্ষা করে ।কে পিটপিটপি
পি দ্বারা বিভাজ্য সংখ্যা আছে কিনা তা পরীক্ষা করতে, আমরা গড় পি সংখ্যা পরীক্ষা করে দেখি। পরে যদি আমরা পরীক্ষা করে দেখি যে 2p দ্বারা বিভাজ্য সংখ্যা আছে কি না, 50% সম্ভাবনা রয়েছে যে আমাদের কেবল একটি সংখ্যা (পি দ্বারা বিভাজ্য একটি) পরীক্ষা করতে হবে, এবং গড় 2p আরও সংখ্যার উপর পরীক্ষার জন্য 50% সুযোগ রয়েছে। 3p দ্বারা বিভাজ্য একটি সংখ্যা সন্ধান করা সম্ভবত খুব দ্রুত এবং তেমনি, এবং আমরা পি দ্বারা বিভাজকগুলির জন্য N সংখ্যার চেয়ে বেশি কখনই চেক করতে পারি না, কারণ কেবল এন সংখ্যা রয়েছে।
আমি আশা করি এটি প্রায় বিভাজ্যতা পরীক্ষার সাথে কাজ করে।N2/logN
পুনশ্চ. এলোমেলো সংখ্যার জন্য ফলাফলটি কত বড় হবে?
ধরুন আমার কাছে এন এলোমেলো সংখ্যা রয়েছে। এন সংখ্যার একটির ডি দ্বারা বিভাজ্য সম্ভাবনা হ'ল 1 - (1 - 1 / d)) N আমি সম্ভাবনাটি ধরে নিয়েছি যে প্রতিটি সংখ্যার 1 ≤ d ≤ k এর যেকোন একটি এলোমেলো সংখ্যার একটি ফ্যাক্টর এই সম্ভাবনার গুণন করে গণনা করা হয় (ঠিক আছে, এটি কিছুটা ডজ্বি, কারণ এই সম্ভাবনাগুলি সম্ভবত বেশ স্বতন্ত্র নয়)।
এই অনুমানের সাথে, এন = 1000 এর সাথে, 50% সম্ভাবনা রয়েছে যে ১.২৪৪ সংখ্যার একটিতে কোনও সংখ্যা বিভাজিত হয় না এবং এক বিলিয়নে একটি যে প্রতিটি সংখ্যা ৫০ 50 অবধি একটিকে ভাগ করে দেয়। এন = 10,000 এর সাথে একটি 50% সম্ভাবনা রয়েছে যে ১.১.২726 সংখ্যাগুলির মধ্যে একটিতে কোনও সংখ্যা বিভক্ত হয় না এবং বিলিয়নে এমন একটি যা প্রতিটি সংখ্যা ২ 79 .৯ পর্যন্ত একটি সংখ্যাকে ভাগ করে দেয়।
আমি প্রস্তাব দেব যে এন এলোমেলো ইনপুটগুলির জন্য, ফলাফলের আকারটি এন / এলএন এন এর চেয়ে কিছুটা বড়; হতে পারে N / ln N * (ln ln N) something 2 এর মতো কিছু। কারণটা এখানে:
সম্ভাব্যতা যে এন র্যান্ডম সংখ্যার অন্তত একটি একটি র্যান্ডম ঘ দ্বারা বিভাজ্য হয় । যদি ডি এন এর আশেপাশে থাকে তবে প্রায় 1 - এক্সপ্রেস (-1) ≈ 0.6321। এটি একক বিভাজনের জন্য; সম্ভাব্য যে কয়েকটি সংখ্যার প্রত্যেকের ডি ≈ N হ'ল কমপক্ষে একটি এন সংখ্যার বিভাজক হ'ল যথেষ্ট পাতলা, তাই সর্বাধিক ডি এন এর চেয়ে উল্লেখযোগ্যভাবে ছোট হবে ces 1 - ( 1 - 1 / ডি ) এন1−(1−1/d)N1−(1−1/d)N
যদি ডি << এন হয়, তবে ।1−(1−1/d)N≈1−exp(−N/d)
তাহলে ঘ ≈ n / n Ln তারপর ।1−exp(−N/d)≈1−exp(−lnN)=1−1/N
আমরা প্রায় N / ln N মান d এর জন্য এই সম্ভাবনাগুলি যুক্ত করব তবে বেশিরভাগ ক্ষেত্রে ডি ফলাফলটি উল্লেখযোগ্য পরিমাণে বড় হবে, তাই বৃহত্তম ডি N / ln N এর চেয়ে কিছুটা বড় তবে N এর চেয়ে উল্লেখযোগ্যভাবে ছোট হবে
পুনশ্চ. ডি দ্বারা বিভাজ্য একটি সংখ্যা সন্ধান করা:
আমরা ডি এর বৃহত্তম প্রাইম ফ্যাক্টর পি বাছাই করি এবং তারপরে আমরা প্রথমে পি দ্বারা বিভাজ্য হিসাবে পরিচিত ছিল এমন নম্বরগুলি পরীক্ষা করি। বলুন ডি = কেপি। তারপরে গড়ে আমরা কেবলমাত্র এই নির্দিষ্ট ডিটি পরীক্ষা করার সময় পি দ্বারা বিভাজ্য কে সংখ্যাগুলি পরীক্ষা করি এবং আমরা পি দ্বারা বিভাজ্যতার জন্য সমস্ত এন মানগুলি পি দ্বারা বিভাজ্য সকল ডি পরীক্ষা করে দেখতে পারি। প্রকৃতপক্ষে, আমরা বেশিরভাগ প্রাইম পি এর জন্য এন মানগুলির চেয়ে কম পরীক্ষা করি কারণ সমস্ত এন মানগুলি পরীক্ষা করার পরে অ্যালগরিদম সম্ভবত শেষ হয়। সুতরাং যদি ফলাফলটি আর হয় তবে আমি প্রত্যাশা করি যে এন মানগুলি প্রতিটি প্রধানের চেয়ে কম ভাগ করে নেওয়া হবে আর ধরে নিচ্ছেন আর ≤ এন ধরে নেওয়া, এটি প্রায় N ^ 2 / লগ এন চেকগুলি।
পুনশ্চ. কিছু পরীক্ষা চলছে
আমি এই অ্যালগরিদমটি কয়েকবার এন = 1,000,000 এলোমেলো সংখ্যার সাথে>> 0. কমপক্ষে সাধারণ অবিভাজকটি 68,000 এবং 128,000 এর মধ্যে ছিল যার মধ্যে 100,000 থেকে 120,000 এর মধ্যে বিশাল সংখ্যাগরিষ্ঠ ছিল। বিভাগগুলির সংখ্যা 520 মিলিয়ন এবং 1800 মিলিয়ন এর মধ্যে ছিল যা (এন / এলএন এন) less 2 এর চেয়ে অনেক কম; 1000 এবং 1500 মিলিয়ন বিভাগের মধ্যে ব্যবহৃত বেশিরভাগ ক্ষেত্রে।