ভূমিকা
মধ্যম বর্গ পদ্ধতি সিউডোরান্ডম সংখ্যার প্রজন্মের জন্য ব্যবহার করা হয়। যাইহোক, এটি অনুশীলনে একটি ভাল পদ্ধতি নয়, কারণ এটির সময়কাল খুব কম হয় এবং কিছু গুরুতর দুর্বলতা থাকে। কিভাবে কাজ করে? একটি উদাহরণ নেওয়া যাক:
বীজের জন্য, আমরা বাছাই 123456
:
Seed 123456
বীজের স্কোয়ার (বীজ × বীজ) সমান:
Seed² 15241383936
আমরা 6-সংখ্যার নম্বর দিয়ে শুরু করেছি । এর অর্থ হল যে বীজের স্কোয়ারটি 12-সংখ্যার সংখ্যা সরবরাহ করবে। যদি এটি না হয় তবে ক্ষতিপূরণ দেওয়ার জন্য নেতৃস্থানীয় শূন্যগুলি যুক্ত করা হয়:
Seed² 015241383936
তারপরে আমরা বীজের মতো একই আকারের সাথে সংখ্যার মাঝের অংশটি নিয়ে থাকি :
Seed² 015241383936
^^^^^^
এই তাহলে আমাদের হয় নতুন বীজ : 241383
। আমরা উপরে প্রদর্শিত একই প্রক্রিয়া পুনরাবৃত্তি। আমরা নিম্নলিখিত পেতে:
0: 123456
015241383936
| |
1: 241383
058265752689
| |
2: 265752
070624125504
| |
3: 624125
389532015625
| |
4: 532015
283039960225
| |
5: 039960
001596801600
| |
6: 596801
এবং এটি কিছুটা সময় ধরে রাখে ... এখন আমরা জানি মধ্যবিত্ত পদ্ধতিটি কী, আসুন আমরা চ্যালেঞ্জটি পেয়ে যাই:
কাজটি
প্রতিটি বীজের হয়েছে একটি সময়ের । একটি এন- ডিজিট বীজের সময়কাল 8 এন এর বেশি হতে পারে না । উদাহরণস্বরূপ, বীজ 82
। এটি নিম্নলিখিত ক্রমটি দেবে:
82 > 72 > 18 > 32 > 02 > 00 > 00 > 00 > 00 > 00
|____|____|____|____|____|____|____|____|____|___...
0 1 2 3 4 5 6 7 8 9
আপনি দেখতে পাবেন যে একই অঙ্কটি আবার রাখার আগে পিরিয়ডটি সমান 5 । আপনার কাজটি হ'ল, যখন কোনও শীর্ষ শূন্যযুক্ত 0 এর চেয়ে বড় বীজ দেওয়া হয়, তখন বীজের সময়কাল আউটপুট হয় । সুতরাং, এই ক্ষেত্রে, আপনার আউটপুট প্রয়োজন 5
।
আরেকটি উদাহরণ হ'ল:, 24
যা নিম্নলিখিতটি দেয়:
24 > 57 > 24
|____|____|___...
0 1 2
আপনি দেখতে পাচ্ছেন, সমস্ত ক্রম শেষ হয় না 0
। এই চক্রটির সময়কাল 1 হয় ।
পরীক্ষার মামলা
Input > Output
24 > 1
82 > 5
123456 > 146
8989 > 68
789987 > 226
123456 , 8989 , 789987 এর সিকোয়েন্স সহ পেস্টবিনগুলি
এটি কোড-গল্ফ , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!
আপনি ধরে নিতে পারেন যে ইনপুটটিতে কখনও অসম সংখ্যা থাকবে না।
24
(সময়ের 2, আমি বলতে চাই), পর্যায়ক্রমিক হয়82
হয় অবশেষে পর্যাবৃত্ত (সময়কাল 1 সহ)।