Arduino:
এলোমেলো সংখ্যা তৈরি করা
কিভাবে:
আরডুইনো র্যান্ডম নম্বর উৎপাদনের জন্য সরল ফাংশনগুলি প্রদান করে: randomSeed()
এবং random()
. শুরু করতে, প্রোগ্রাম প্রতিবার চালু হলে বিভিন্ন ধারাবাহিক নম্বরের নিশ্চয়তা দিতে র্যান্ডম নম্বর জেনারেটরকে সিড করুন। একটি প্রায়শই ব্যবহৃত পদ্ধতি হল একটি অসংযুক্ত পিন থেকে একটি অ্যানালগ রিড দিয়ে সিড করা।
void setup() {
Serial.begin(9600);
// র্যান্ডম সিড ইনিশিয়ালাইজ
randomSeed(analogRead(0));
}
void loop() {
// র্যান্ডম নম্বর উৎপাদন করুন 0 থেকে 99 এর মধ্যে
int randomNumber = random(100);
Serial.println(randomNumber);
delay(1000); // আউটপুটের পাঠযোগ্যতা জন্য এক সেকেন্ড দেরি করুন
}
উপরের প্রোগ্রামটি setup()
ফাংশনে র্যান্ডম নম্বর জেনারেটরটিকে ইনিশিয়ালাইজ করে এবং প্রতিটি লুপ ইটারেশনে 0 থেকে 99 এর মধ্যে একটি নতুন নম্বর উৎপাদন করে, সেই নম্বরটি সিরিয়াল মনিটরে আউটপুট করে।
নমুনা আউটপুট:
42
17
93
...
গভীরে ডুব দিন
আরডুইনোর random()
ফাংশন আসলে একটি প্যারো-র্যান্ডম নম্বর জেনারেটর (PRNG)-এর কাজ করে, যা একটি নির্দিষ্ট ধারাবাহিকতা অনুসরণ করে কিন্তু পরিসংখ্যানগত ভাবে র্যান্ডম বলে মনে হয়। ধারাবাহিকতার প্রাথমিক মান, অর্থাৎ সিড, এর অপ্রত্যাশিততার উপর গভীরভাবে প্রভাব ফেলে, তাই কিছুটা র্যান্ডম ইনপুটের সাথে randomSeed()
এর ব্যবহার একটি শুরুর পয়েন্ট হিসাবে প্রচলিত। মনে রাখা জরুরি যে, আরডুইনো দ্বারা উৎপন্ন র্যান্ডমনেস বেশিরভাগ হবিস্ট প্রকল্পের জন্য যথেষ্ট হলেও, এর সময়ের সাথে পূর্বাভাসযোগ্যতা কারণে উচ্চ-নিরাপত্তার অ্যাপ্লিকেশনের জন্য মানদণ্ড পূরণ করে না। ক্রিপ্টোগ্রাফিক উদ্দেশ্যে, ফিজিক্যাল প্রক্রিয়াগুলিকে ব্যবহার করে সত্যিকারের র্যান্ডমনেস প্রদান করতে পারে এমন আরো জটিল অ্যালগরিদম এবং হার্ডওয়্যার র্যান্ডম নম্বর জেনারেটর (HRNGs)-এ দেখা উচিত।