Elixir:
এলোমেলো সংখ্যা উৎপন্ন করা
কিভাবে:
Elixir এ র্যান্ডম সংখ্যা উত্পাদনের জন্য মূলত :rand
মডিউল ব্যবহার করা হয়, যা এ উদ্দেশ্যে কয়েকটি ফাংশন প্রদান করে। এখানে শুরু করার জন্য একটি দ্রুত নির্দেশনা দেওয়া হল:
প্রথমে, র্যান্ডম সংখ্যা জেনারেটরটিকে একটি অনন্য শুরুর পয়েন্ট দিয়ে ইনিশিয়ালাইজ করার জন্য সীড করুন:
:rand.seed(:exsplus)
একটি নির্দিষ্ট পরিসীমার মধ্যে একটি র্যান্ডম পূর্ণসংখ্যা উত্পাদন করতে:
random_integer = :rand.uniform(10) # 1 থেকে 10 এর মধ্যে একটি সংখ্যা উত্পাদন করে
IO.puts(random_integer)
0 এবং 1.0 এর মধ্যে একটি র্যান্ডম ফ্লোটের জন্য:
random_float = :rand.uniform()
IO.puts(random_float)
ফ্লোটের জন্য আরও নির্দিষ্টিক একটি পরিসীমা প্রয়োজন হতে পারে, যা কিছুটা বেশি গণনার দাবি রাখে:
min = 1.5
max = 5.5
random_float_range = min + (:rand.uniform() * (max - min))
IO.puts(random_float_range)
মনে রাখবেন, এই সংখ্যাগুলো সুদৌলমায়; তারা বীজ এবং অ্যালগরিদম দ্বারা নিয়ন্ত্রিত হলেও, বেশিরভাগ অ্যাপ্লিকেশনের জন্য পর্যাপ্ত।
গভীরে ডুব দিন
Elixir এর র্যান্ডম সংখ্যা উত্পাদন দক্ষতা Erlang এর :rand
মডিউলের উপর নির্ভর করে, যা তার উত্তরাধিকার এবং Erlang এর সাথে ঘনিষ্ঠ সম্পর্ক প্রতিফলিত করে। :rand
মডিউল পুরানো :random
মডিউলকে প্রতিস্থাপন করেছে, র্যান্ডম সংখ্যা উত্পাদনের জন্য উন্নতি সাধিত অ্যালগরিদম প্রদান করে। এটি বিভিন্ন অ্যালগরিদম প্রদান করে, ডিফল্ট হল exsplus
, তবে exs64
, exsl
, এবং আরও অনেকের মতো বিভিন্ন অ্যালগরিদমও সমর্থন করে, প্রতিটির গতি এবং র্যান্ডমনেসের মানের বিনিময়।
Elixir এর (এবং তাই Erlang এর) র্যান্ডম সংখ্্যা উত্পাদনের একটি আকর্ষণীয় দিক হলো তার বীজের হ্যান্ডলিং। সিস্টেম প্রতিটি প্রসেসের জন্য পৃথক বীজ স্টেট বজায় রাখে, নিশ্চিত করে যে সমান্তরাল প্রসেসগুলি একে অন্যের র্যান্ডম সংখ্যার ক্রম নিয়ে হস্তক্ষেপ করছে না। এটি সমান্তরাল অ্যাপ্লিকেশনে বিশেষত উপকারী, বিতরণিত সিস্টেমে পূর্বানুমানযোগ্যতা এবং বিশ্বাসযোগ্যতা নিশ্চিত করে।
যদিও :rand
মডিউল বেশিরভাগ ইউজ কেসের জন্য যথেষ্ট, ক্রিপ্টোগ্রাফিকভাবে নিরাপদ র্যান্ডম সংখ্যা প্রয়োজন হলে অন্যান্য বিকল্পগুলি বিবেচনা করা উচিৎ। crypto
মডিউল যেমন crypto:strong_rand_bytes/1
এর মতো ফাংশন প্রদান করে, যা ক্রিপ্টোগ্রাফিক উদ্দেশ্যের জন্য উপযুক্ত নিরাপদ র্যান্ডম ডেটা উত্পাদনের জন্য ডিজাইন করা হয়েছে। টোকেন উত্পাদন, এনক্রিপশন, এবং নির্দিষ্ট প্রকারের অথেনটিকেশন মেকানিজমের মতো নিরাপত্তা-সংবেদনশীল অ্যাপ্লিকেশনের জন্য এই বিকল্পগুলি অপরিহার্য।