Ruby:
এলোমেলো সংখ্যা উৎপন্ন করা
কিভাবে:
রুবি এলোমেলো সংখ্যা উত্পাদনের জন্য বেশ কয়েকটি পদ্ধতি প্রদান করে, প্রধানত Random
শ্রেণীর মাধ্যমে।
বেসিক এলোমেলো সংখ্যা
একটি বেসিক এলোমেলো সংখ্যা তৈরি করতে:
puts rand(10) # 0 থেকে 9 এর মধ্যে একটি এলোমেলো সংখ্যা উত্পন্ন করে
একটি নির্দিষ্ট পরিসরে এলোমেলো সংখ্যা
নির্দিষ্ট পরিসরে একটি এলোমেলো সংখ্যা এর জন্য:
puts rand(1..10) # 1 থেকে 10 এর মধ্যে একটি এলোমেলো সংখ্যা উত্পন্ন করে
র্যান্ডম ক্লাস ব্যবহার করা
আবারও উৎপন্ন করা যায় এমন এলোমেলো সংখ্যার ক্রম তৈরি করতে, আপনি Random
শ্রেণীটি একটি বীজ সহ ব্যবহার করতে পারেন।
random_generator = Random.new(1234)
puts random_generator.rand(100) # একটি পূর্বাভাসযোগ্য "এলোমেলো" সংখ্যা উত্পন্ন করে
একটি র্যান্ডম অ্যারে উপাদান জেনারেট করা
একটি অ্যারে থেকে একটি র্যান্ডম উপাদান নির্বাচন করুন:
colors = ["red", "blue", "green", "yellow"]
puts colors.sample # অ্যারে থেকে এলোমেলোভাবে একটি উপাদান নির্বাচন করে
নমুনা আউটপুট:
উপরের প্রতিটি কোড স্নিপেট, চালানো হলে, তাদের এলোমেলো প্রকৃতির কারণে ভিন্ন ভিন্ন আউটপুট উত্পন্ন করবে। যেমন, rand(10)
হয়তো 7
আউটপুট করবে, অন্যদিকে colors.sample
হয়তো "green"
আউটপুট করবে।
গভীর ডুব
কম্পিউটার বিজ্ঞানে এলোমেলো সংখ্যা উত্পাদনের ধারণা প্যারাডক্সিকাল, কারণ কম্পিউটারগুলি স্থির-নির্দেশাবলী অনুসরণ করে। প্রারম্ভিক পদ্ধতিগুলি অপ্রত্যাশিততা অর্জনের জন্য বাইরের ইনপুটের ওপর প্রবলভাবে নির্ভরশীল ছিল। রুবির এলোমেলোতা মার্সেন টুইস্টার অ্যালগরিদমে নির্মিত, যা একটি মনো-এলোমেলো সংখ্যা জেনারেটর এবং এর বিশাল পরিসর এবং সমান বিতরণের জন্য পরিচিত, যা উচ্চমানের এলোমেলোতা প্রয়োজনের অ্যাপ্লিকেশনগুলিতে অত্যন্ত উপযুক্ত।
যদিও রুবির অন্তর্নির্মিত পদ্ধতিগুলি বেশিরভাগ প্রয়োজন সুচারুভাবে পূরণ করে, ক্রিপ্টোগ্রাফিক উদ্দেশ্যে সেগুলি সবসময় যথেষ্ট হতে পারে না, যেহেতু মনো-এলোমেলো সংখ্যাগুলির পূর্বাভাসযোগ্যতা একটি দুর্বলতা হতে পারে। ক্রিপ্টোগ্রাফিক নিরাপত্তার জন্য, রুবি ডেভেলপাররা OpenSSL::Random
এর মতো লাইব্রেরিগুলি অন্বেষণ করতে পারেন, যা সংবেদনশীল অ্যাপ্লিকেশনগুলির জন্য উচ্চতর অপ্রত্যাশিততা নিশ্চিত করতে ক্রিপ্টোগ্রাফিকভাবে নিরাপদ এলোমেলো সংখ্যা উত্পাদনে নকশা করা হয়েছে।