কম্পিউটার

সিউডো র্যান্ডম নম্বর জেনারেশনের জন্য লিনিয়ার কনগ্রুয়েনশিয়াল জেনারেটর বাস্তবায়নের জন্য C++ প্রোগ্রাম


রৈখিক একত্রিত জেনারেটর একটি এলোমেলো সংখ্যা জেনারেটরের একটি খুব সাধারণ উদাহরণ। এটি প্রাচীনতম এবং সর্বাধিক পরিচিত সিউডোর্যান্ডম নম্বর জেনারেটর অ্যালগরিদমগুলির মধ্যে একটি। এই পদ্ধতিতে যে ফাংশনটি ব্যবহার করা হয় −

Xn+1 =(aXn + C) mod m

যেখানে X হল সিউডোর্যান্ডম মানগুলির ক্রম, এবং

m,0 

পূর্ণসংখ্যার ধ্রুবক যা জেনারেটরকে নির্দিষ্ট করে।

এই পদ্ধতির একটি সুবিধা হল পরামিতিগুলির উপযুক্ত পছন্দের সাথে, সময়কাল পরিচিত এবং দীর্ঘ।

অ্যালগরিদম

 ক্লাস mRND ঘোষণা করুন একটি ফাংশন তৈরি করুন Seed(number) একটি ভেরিয়েবল বরাদ্দ করুন _seed=number একটি কনস্ট্রাক্টর তৈরি করুন mRND ঘোষণা করুন _seed(0), a(0), c(0), m(2147483648) একটি ফাংশন তৈরি করুন rnd() রিটার্ন _seed =(a * _seed + c) mod m ঘোষণা করুন a, c, m, _seed সম্পন্ন ঘোষণা করুন আরেকটি সাবক্লাস MS_RND বেস ক্লাস থেকে উত্তরাধিকারসূত্রে পাওয়া mRND একটি কনস্ট্রাক্টর তৈরি করুন a, c একটি ফাংশন তৈরি করুন rnd() রিটার্ন mRND:rnd() right shift 16 সম্পন্ন হয়েছে বেস ক্লাস mRND থেকে উত্তরাধিকারসূত্রে পাওয়া আরেকটি সাবক্লাস BSD_RND ঘোষণা করুন একটি কনস্ট্রাক্টর তৈরি করুন a, c একটি ফাংশন তৈরি করুন rnd() রিটার্ন mRND::rnd() x=0 থেকে 6 এর জন্য MS_RAND প্রিন্ট করুন =0 থেকে 6 প্রিন্ট BSD_RAND DoneEnd

উদাহরণ কোড

#include নেমস্পেস ব্যবহার করে std;class mRND { পাবলিক:void seed(unsigned int s) { _seed=s; } সুরক্ষিত:mRND() :_seed(0), a(0), c(0), m(2147483648) { } int rnd() { রিটার্ন (_seed =(a * _seed + c) % m); } int a, c; স্বাক্ষরবিহীন int m, _seed;}; class MS_RND:public mRND { সর্বজনীন:MS_RND() { a =214013; c =2531011; } int rnd() { ফিরুন mRND::rnd()>> 16; }};শ্রেণী BSD_RND:পাবলিক mRND { সর্বজনীন:BSD_RND() { a =1016404597; c =12345; } int rnd() { ফিরুন mRND::rnd(); }};int main(int argc, char* argv[]) { BSD_RND bsd_rnd; MS_RND ms_rnd; cout <<"MS RAND:" < 

আউটপুট

MS RAND:-----387719212382437885511797BSD RAND:-------12345191529069410053386796292847007415964851834373826> 
  1. ত্রিভুজাকার ম্যাচস্টিক নম্বরের জন্য C/C++ প্রোগ্রাম?

  2. হেক্সাডেসিমেল থেকে দশমিকের জন্য C++ প্রোগ্রাম

  3. একটি DAG-এর জন্য র‍্যান্ডম লিনিয়ার এক্সটেনশন তৈরি করতে C++ প্রোগ্রাম

  4. ভিজেনার সাইফার বাস্তবায়নের জন্য C++ প্রোগ্রাম