চ্যালেঞ্জ
ক্ষুদ্রতম ঘাঁটিগুলির (যেমন, মডুলি) কভারেট্যাটিক অবশিষ্টাংশের সেটগুলি সুনির্দিষ্টভাবে নির্ধারণ করতে পরীক্ষা দেওয়া যেতে পারে যে প্রদত্ত অ-নেতিবাচক পূর্ণসংখ্যা n একটি নিখুঁত বর্গক্ষেত্র কিনা defin বেসগুলি অবশ্যই n এর সর্বোচ্চ মানের বর্গমূলের চেয়ে কম বা সমান হতে হবে ।
একটি নির্দিষ্ট বিভাগ ঘাঁটি ক্ষুদ্রতম সেট দিয়ে উত্তর এন চ্যালেঞ্জ ধিক্কার জানাই। (এর অর্থ সম্ভাব্য একাধিক বিজয়ী হতে পারে)) n এর বিভাগগুলি :
Category Maximum allowed n Maximum allowed modulus/base
------------- -------------------- ----------------------------
8-bit values 255 15
16-bit values 65535 255
32-bit values 4294967295 65535
64-bit values 18446744073709551615 4294967295
সমান কার্ডিনালিটির সমান দুটি সেটের সাথে টাই হওয়ার ক্ষেত্রে, টাইটি প্রথমে অনুক্রমের পরে অ-স্কোয়ারগুলি সনাক্ত করার বৃহত্তর ক্ষমতা সম্পন্ন সেটে যাবে।
যদি কোনও সম্পূর্ণ কভারগুলি পাওয়া যায় না (যা পুরোপুরি 32-বিট এবং 64৪-বিট বিভাগগুলির জন্য রয়েছে), বিজয়ী এমন বেসগুলির সেট হবে যা পরিসংখ্যানগতভাবে বা প্রমাণ হিসাবে অ-স্কোয়ারের সর্বোচ্চ শতাংশ নির্ধারণ করে (ভুলভাবে না করে) স্কোয়ারগুলি অ-স্কোয়ার হিসাবে রিপোর্ট করা)। অসম্পূর্ণ কভারগুলির আলোচনার জন্য নীচে দেখুন।
পটভূমি
অনেক সংখ্যার তত্ত্বের প্রয়োগগুলিতে, প্রশ্ন উত্থাপিত হয় যে কোনও সংখ্যা n একটি নিখুঁত বর্গ (0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, ইত্যাদি) কিনা whether N বর্গক্ষেত্র কিনা তা পরীক্ষা করার একটি উপায় হ'ল তল ()n) ² = n কিনা তা পরীক্ষা করা, অর্থাৎ, গোলাকার-ডাউন বর্গমূলের এন , যখন বর্গক্ষেত্র হয় , ফিরে এন দেয় । উদাহরণস্বরূপ, তল (√123) ² = 11² = 121, যা 123 নয়, তাই 123 বর্গ নয়; তবে তল (√121) ² = 11² = 121, সুতরাং 121 বর্গক্ষেত্র। এই পদ্ধতিটি অল্প সংখ্যক জন্য ভাল কাজ করে, বিশেষত যখন কোনও হার্ডওয়্যার স্কোয়ার-রুট অপারেশন উপলব্ধ থাকে available তবে বড় সংখ্যক (শত বা হাজার হাজার বিট) এটি খুব ধীর হতে পারে।
বর্গক্ষেত্রের জন্য পরীক্ষা করার আরেকটি উপায় হ'ল চতুষ্কোণীয় অবশিষ্টাংশ সারণীগুলি ব্যবহার করে অ-স্কোয়ারগুলি বাতিল করা। উদাহরণস্বরূপ, বেস 10 এর সমস্ত স্কোয়ারের একটি চূড়ান্ত (অবশ্যই স্থান) অঙ্ক থাকতে হবে যা 0, 1, 4, 5, 6 বা 9 হয় is এই মানগুলি বেস 10 এর জন্য চতুর্ভুজীয় অবশিষ্টাংশের সেট গঠন করে So সুতরাং যদি একটি বেস হয় -10 নম্বর 0, 1, 4, 5, 6, বা 9 এ শেষ হয়, আপনি জানেন যে এটি বর্গক্ষেত্র হতে পারে এবং আরও পরীক্ষার প্রয়োজন হবে। তবে যদি বেস -10 সংখ্যাটি 2, 3, 7 বা 8 এর মধ্যে শেষ হয় তবে আপনি নিশ্চিত হতে পারেন যে এটি বর্গক্ষেত্র নয় ।
সুতরাং আসুন অন্য বেস তাকান। বেস 8 এর সমস্ত স্কোয়ার 0, 1, বা 4 এর সমাপ্ত হতে হবে, যা সুবিধামত 8 টি সম্ভাবনার মধ্যে কেবল 3, যার অর্থ একটি এলোমেলো সংখ্যার সম্ভবত 37.5% সম্ভাবনা, বা এলোমেলো সংখ্যার 62.5% সম্ভাবনা অবশ্যই বর্গক্ষেত্র নয়। এটি বেস 10 যা দেয় তার চেয়ে অনেক বেশি ভাল মতবিরোধ। (এবং নোট করুন যে বেস -8 মডুলাস অপারেশনটি কেবল একটি লজিক্যাল-এবং অপারেশন, বেস -10 মডুলাসের বিপরীতে, যা বাকী 10 দিয়ে বিভাজন হয়))
আরও ভাল বেস আছে? ঠিক আছে, হ্যাঁ, আসলে। বেস 120 এর 18 সম্ভাবনা রয়েছে (0, 1, 4, 9, 16, 24, 25, 36, 40, 49, 60, 64, 76, 81, 84, 96, 100, এবং 105), যা কেবল 15% উপস্থাপন করে সম্ভবত স্কোয়ার হওয়ার সম্ভাবনা। এবং বেস 240 এখনও আরও ভাল, কেবল 24 টি সম্ভাবনা সহ, সম্ভবত বর্গক্ষেত্র হওয়ার 10% সম্ভাবনা উপস্থাপন করে।
তবে একক কোনও বেসই যথাযথভাবে স্কোয়ারনেস নির্ধারণ করতে পারে না (যদি না এটি পরীক্ষিত সর্বাধিক সংখ্যার চেয়ে বড় না হয়, যা বিশিষ্ট অবৈজ্ঞানিক)। একা একা বেস কেবল বর্গক্ষেত্রকেই শাসন করতে পারে ; এটি চূড়ান্তভাবে স্কোয়ারনেসটি যাচাই করতে পারে না । কেবলমাত্র সাবধানে নির্বাচিত ঘাঁটিগুলির সেট, একসাথে কাজ করা, একাধিক সংখ্যার পূর্ণসংখ্যার উপরের স্কোয়ারনেসকে চূড়ান্তভাবে যাচাই করতে পারে।
সুতরাং, প্রশ্নটি দাঁড়ায়: ঘাঁটিগুলির কোন সেটটি ন্যূনতম কভার গঠন করে যা একত্রে স্কোয়ারনেস বা অ-স্কোয়ারনেসের চূড়ান্ত ছাড়ের অনুমতি দেয়?
একটি সঠিক তবে সর্বনিম্ন কভারের উদাহরণ
১ 16-বেস কভারের কভার {3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 19, 23, 25, 29, 31, 37 itive এর স্কোয়ারনেস বা স্কোয়ারনেসটি নির্ধারণ করার জন্য যথেষ্ট সমস্ত 16-বিট মান 0 থেকে 65535. তবে এটি কোনও ন্যূনতম কভার নয়, কারণ কমপক্ষে একটি 15-বেস কভার বিদ্যমান যা সহজেই আবিষ্কারযোগ্য। প্রকৃতপক্ষে, সম্ভবত এটি সম্ভবত আরও ছোট কভারগুলি উপস্থিত রয়েছে - সম্ভবত কম 6 বা 7 বেস রয়েছে।
তবে উদাহরণস্বরূপ, আসুন এই 16-বেস কভার সেটটি ব্যবহার করে এন এর একটি নমুনা মান পরীক্ষা করে দেখুন । উপরের বেসগুলির সেটগুলির জন্য এখানে চতুষ্কোণ অবশিষ্টাংশগুলির সেট রয়েছে:
Base m Quadratic residue table specific to base m
------ ----------------------------------------------------
3 {0,1}
4 {0,1}
5 {0,1,4}
7 {0,1,2,4}
8 {0,1,4}
9 {0,1,4,7}
11 {0,1,3,4,5,9}
13 {0,1,3,4,9,10,12}
16 {0,1,4,9}
17 {0,1,2,4,8,9,13,15,16}
19 {0,1,4,5,6,7,9,11,16,17}
23 {0,1,2,3,4,6,8,9,12,13,16,18}
25 {0,1,4,6,9,11,14,16,19,21,24}
29 {0,1,4,5,6,7,9,13,16,20,22,23,24,25,28}
31 {0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28}
37 {0,1,3,4,7,9,10,11,12,16,21,25,26,27,28,30,33,34,36}
এখন প্রতিটি বেসে রূপান্তর করে, বেসগুলির এই সেটটি ব্যবহার করে n = 50401 নম্বরটি পরীক্ষা করি । (এটি অবশিষ্টাংশ পরীক্ষা করার সবচেয়ে কার্যকর উপায় নয়, তবে এটি ব্যাখ্যামূলক উদ্দেশ্যেই যথেষ্ট)) আমরা এখানে আগ্রহী এমন 1 টি জায়গা (বন্ধুত্বের নীচে চিহ্নিত):
Base "Digits" in base m
m m^9 m^8 m^7 m^6 m^5 m^4 m^3 m^2 m^1 ( m^0 )
---- -----------------------------------------------------------------
3 2 1 2 0 0 1 0 2 0 ( 1 ) ✓
4 3 0 1 0 3 2 0 ( 1 ) ✓
5 3 1 0 3 1 0 ( 1 ) ✓
7 2 6 6 6 4 ( 1 ) ✓
8 1 4 2 3 4 ( 1 ) ✓
9 7 6 1 2 ( 1 ) ✓
11 3 4 9 5 ( 10 )
13 1 9 12 3 ( 0 ) ✓
16 12 4 14 ( 1 ) ✓
17 10 4 6 ( 13 ) ✓
19 7 6 11 ( 13 )
23 4 3 6 ( 8 ) ✓
25 3 5 16 ( 1 ) ✓
29 2 1 26 ( 28 ) ✓
31 1 21 13 ( 26 )
37 36 30 ( 7 ) ✓
সুতরাং আমরা দেখতে পাচ্ছি যে এই ১৩ টি ঘাঁটিতে, অবশিষ্টাংশগুলি একটি পরিচিত চতুষ্কোণীয় অবশিষ্টাংশের সাথে মেলে (এটি টেবিলের "হিট" বলুন) এবং এই তিনটি ঘাঁটিতে, অবশিষ্টাংশগুলি একটি পরিচিত চতুষ্কোণ অবশিষ্টাংশের সাথে মেলে না (এটি একটি কল করুন "হারানো"). একটি সংখ্যা অ-বর্গক্ষেত্রের জেনে এটি কেবল 1 মিস দরকার, তাই আমরা 11 এ থামতে পারি, তবে উদাহরণস্বরূপ উদ্দেশ্যে, আমরা এখানে 16 টি ঘাঁটি পরীক্ষা করেছি।
অসম্পূর্ণ কভার উদাহরণ
প্রযুক্তিগতভাবে, একটি অসম্পূর্ণ আবরণ কোনও কভার নয়, তবে এটি পয়েন্টের পাশে। বেসগুলির সেট {7, 8, 11, 15} প্রায় 0 থেকে 255 পর্যন্ত এন এর সমস্ত 8-বিট মানগুলি সঠিকভাবে কভার করে , তবে বেশ নয়। বিশেষত, এটি 60 এবং 240 কে ভুল হিসাবে স্কোয়ার হিসাবে চিহ্নিত করেছে (এগুলি মিথ্যা ধনাত্মক) - তবে এটি প্রকৃত স্কোয়ারগুলি (0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196 এবং 225) এবং অন্য কোনও মিথ্যা ধনাত্মক করে না। সুতরাং এটি একটি 4-সেট যা প্রায় একটি সমাধান হিসাবে সফল হয় তবে শেষ পর্যন্ত ব্যর্থ হয়, কারণ একটি অসম্পূর্ণ কভারটি বৈধ সমাধান নয়।
8-বিট এন এর জন্য s 7, 8, 11, 15 base ঘাঁটির সেটটি 4 টি ঘাঁটির দুটি সেটগুলির মধ্যে একটি যা দুটি ত্রুটি তৈরি করে এবং 4 টি ঘাঁটির সাতটি সেট রয়েছে যা কেবল একটি ত্রুটি তৈরি করে। 4 টি বেসের কোনও সেট আসলে বিদ্যমান নেই যা 8-বিট মানগুলির একটি সম্পূর্ণ এবং সঠিক কভার গঠন করে। আপনি 8 টি বেসের একটি সেট খুঁজে পেতে পারেন যা কোনও ত্রুটি তৈরি করে না, সমস্ত 8-বিট মান সঠিকভাবে আচ্ছাদন করে? অথবা আপনার 6 বা তার বেশি প্রয়োজন? (আমি 8-বিট এন এর উত্তর জানি না , তবে আমি তা দিয়ে যাব না 16 আমি 16-বিট, 32-বিট বা 64-বিটের উত্তর জানি না, এবং আমি 16- ব্রিট-ফোর্স অনুসন্ধানের মাধ্যমে বিট কেস সমাধান করা অসম্ভব 32 32-বিট এবং 64৪-বিট কেস সমাধান করার জন্য অবশ্যই জেনেটিক, হিউরিস্টিক বা অন্যান্য অনুসন্ধান কৌশলগুলির প্রয়োজন হবে))
ক্রিপ্টোগ্রাফিকভাবে প্রচুর সংখ্যার উপর একটি মন্তব্য
শত শত বা হাজারো বাইনারি অঙ্কগুলিতে 64৪-বিট সংখ্যার বাইরে - এইখানেই একটি দ্রুত স্কোয়ারনেস চেক বেশিরভাগই কার্যকর হয়, এমনকি কভারটি অসম্পূর্ণ থাকলেও (এটি সম্ভবত এটি সত্যই বড় সংখ্যার জন্য হবে)। অপ্রতুলভাবে সিদ্ধান্ত নেওয়া হলেও এর মতো পরীক্ষা কীভাবে কার্যকর হতে পারে? ঠিক আছে, কল্পনা করুন যে আপনার স্কোয়ারনেসের জন্য একটি অত্যন্ত দ্রুত পরীক্ষা হয়েছিল যা সময়ের 99.9% সঠিকভাবে কাজ করে এবং বাকি 0.1% সময়কে মিথ্যা negativeণাত্মকতা দেয় এবং কখনও মিথ্যা ধনাত্মক দেয় না। এ জাতীয় পরীক্ষার মাধ্যমে আপনি সংখ্যার অ-স্কোয়ারনেসটি প্রায় তাত্ক্ষণিকভাবে নির্ধারণ করতে সক্ষম হবেন এবং তারপরে সিদ্ধান্তহীনতার ব্যতিক্রমী ক্ষেত্রে আপনি অজানাটিকে অন্যরকমভাবে সমাধানের জন্য ধীর গতিতে অবলম্বন করতে পারেন। এটি আপনাকে বেশ কিছুটা সময় সাশ্রয় করবে।
উদাহরণস্বরূপ, সেট {8, 11, 13, 15} সঠিক 8-বিট মানের জন্য সময় 99,61% এন 0 থেকে 255, সংশোধন হয় 95,98 এর 16 বিট মানের জন্য সময়% এন 0 থেকে 65535, এবং 24-বিট মানের জন্য সময় 95,62% সঠিক এন 0 থেকে 16777215. হিসাবে এন অনন্ত যায়, ঘাঁটি এই সেটটির জন্য শুদ্ধি শতাংশ যায় নিচে, কিন্তু এটা এসিম্পটোটিকভাবে দৃষ্টিভঙ্গী এবং 95,5944% এর নিচে কখনোই ড্রপ শুদ্ধি।
এমনকি 4 টি ছোট ঘাঁটির এই অতি ক্ষুদ্র সেটটি প্রায় 23 টির মধ্যে 22 টির মধ্যে প্রায় 22 টি নির্বিচার স্কোয়ার হিসাবে প্রায় তাত্ক্ষণিকভাবে সনাক্ত করতে কার্যকর - ধীর পদ্ধতিতে এই সংখ্যাগুলির আরও তদন্তের প্রয়োজন বোধ করে। তারপরে ধীর পদ্ধতিগুলি কেবলমাত্র স্বল্প শতাংশে প্রয়োগ করা উচিত যা এই দ্রুত পরীক্ষার মাধ্যমে বাতিল হতে পারে না।
এটি লক্ষ্য করা আকর্ষণীয় যে কিছু 16-বিট বেসগুলি নিজেরাই 95% এর চেয়ে বেশি অর্জন করে। প্রকৃতপক্ষে, নীচের প্রতিটি ঘাঁটি বর্গক্ষেত্র না হয়ে অনন্ত পর্যন্ত সমস্ত সংখ্যার 97% এর চেয়ে ভাল আগাছা দিতে সক্ষম। এই প্রতিটি ঘাঁটির জন্য চতুর্ভুজ রেসিডু সেটটি কেবল 8192 বাইট ব্যবহার করে একটি প্যাক-বিট অ্যারে হিসাবে উপস্থাপন করা যেতে পারে।
এখানে 10 সবচেয়ে শক্তিশালী একক ঘাঁটি 2 ^ 16 এর চেয়ে কম রয়েছে:
Rank Base Prime factorization Weeds out
---- ------------------------------ ---------
1. 65520 = 2^4 x 3^2 x 5 x 7 x 13 97.95%
2. 55440 = 2^4 x 3^2 x 5 x 7 x 11 97.92%
3. 50400 = 2^5 x 3^2 x 5^2 x 7 97.56%
4. 52416 = 2^6 x 3^2 x 7 x 13 97.44%
5. 61200 = 2^4 x 3^2 x 5^2 x 17 97.41%
6. 44352 = 2^6 x 3^2 x 7 x 11 97.40%
7. 63360 = 2^7 x 3^2 x 5 x 11 97.39%
8. 60480 = 2^6 x 3^3 x 5 x 7 97.38%
9. 63840 = 2^5 x 3 x 5 x 7 x 19 97.37%
10. 54720 = 2^6 x 3^2 x 5 x 19 97.37%
আকর্ষণীয় কিছু দেখুন যে এই ঘাঁটিগুলিতে সমস্ত মিল রয়েছে? তারা একসাথে সংমিশ্রণে কার্যকর হতে পারে বলে মনে করার কোনও কারণ নেই (সম্ভবত তারা হবেন, সম্ভবত তারা নাও) তবে এখানে কয়েকটি ভাল সংকেত রয়েছে যে সংখ্যার বৃহত্তর বিভাগগুলির জন্য কোন ঘাঁটিগুলি সবচেয়ে প্রভাবশালী হতে পারে বলে সুনিশ্চিত রয়েছে।
পার্শ্ব চ্যালেঞ্জ: 2 ^ 28 অবধি সর্বাধিক প্রভাবশালী ঘাঁটির একটি (সবচেয়ে বেশি না হলে ) 245044800, যা একা সঠিকভাবে 99,66% অ স্কোয়ারগুলি, বা 307 এর প্রায় 306 এ ছুঁড়ে ফেলে দিতে পারে it আপনি খুঁজে পেতে পারেন সবচেয়ে প্রভাবশালী একক বেস 2 ^ 32 কম কিসে?
সম্পর্কিত
নীচের প্রশ্নগুলিতে কিছু খুব সুন্দর ধারণা রয়েছে যা ঘনিষ্ঠভাবে সম্পর্কিত, পাশাপাশি নির্দিষ্ট ক্রিয়াকলাপগুলিকে আরও দ্রুত করার জন্য বেশ কয়েকটি মাইক্রো-অপ্টিমাইজেশনের কৌশল। যদিও লিঙ্কযুক্ত প্রশ্নগুলি ঘাঁটিগুলির সবচেয়ে শক্তিশালী সেট সন্ধানের জন্য বিশেষভাবে সেট করা হয় নি, শক্ত ঘাঁটিগুলির ধারণা সেখানে ব্যবহৃত কিছু অপ্টিমাইজেশন কৌশলগুলির মধ্যে অন্তর্ভুক্ত central