কম্পিউটার

ক্যারি মেথডের সাথে গুন ব্যবহার করে এলোমেলো সংখ্যা তৈরি করতে C++ প্রোগ্রাম


মাল্টিপ্লাই-উথ-ক্যারি পদ্ধতি হল অ্যাড-উথ-ক্যারি জেনারেটরের একটি বৈকল্পিক যা মার্সাগ্লিয়া এবং জামান (1991) দ্বারা প্রবর্তিত হয়েছিল। এই পদ্ধতির প্রধান সুবিধা হল যে এটি সাধারণ কম্পিউটার পূর্ণসংখ্যার পাটিগণিতকে আমন্ত্রণ জানায় এবং প্রায় 260 থেকে 22000000 পর্যন্ত সীমাহীন র্যান্ডম সংখ্যার ক্রমগুলির খুব দ্রুত প্রজন্মের দিকে নিয়ে যায়৷

MWC বেস b-এ কম্পিউটার শব্দের আকারের সমান এবং গুণক a এবং lag r নির্ধারণ করা হয় মডুলাস p =ab r −1। এখানে, a বেছে নেওয়া হয়েছে যাতে মডুলাসটি প্রাইম এবং গুণকের দীর্ঘ সময় থাকে।

অ্যালগরিদম

Begin
   Declare maximum _sequence _elements, b, r, c[maximum _sequence _elements],
   x[maximum _sequence _elements]
   Read the variables maximum _sequence _elements, b, r
   m = rand() mod b
   c[0] = rand() mod m
   x[0] = rand() mod b
   For I = 1 to maximum_sequence_element, do
      x[i] = (m * x[i - r] + c[i - 1]) mod b
      c[i] = (m * x[i - r] + c[i - 1]) / b
      print the sequence.
   Done.
End.

উদাহরণ কোড

#include <iostream>
using namespace std;
int main(int argc, char **argv) {
   int max_Seq_Elements = 7;
   int b = 300;
   int m = rand() % b;
   int r = 1;
   int c[max_Seq_Elements];
   int x[max_Seq_Elements];
   c[0] = rand() % m;
   x[0] = rand() % b;
   cout << "The random number sequence is: " << x[0];
   for (int i = 1; i < max_Seq_Elements; i++) {
      x[i] = (m * x[i - r] + c[i - 1]) % b;
      c[i] = (m * x[i - r] + c[i - 1]) / b;
      cout << " " << x[i];
   }
   cout << "...";
}

আউটপুট

The random number sequence is: 177 173 226 221 56 157 84...

  1. Recursion ব্যবহার করে প্রাকৃতিক সংখ্যার যোগফল খুঁজে পেতে C++ প্রোগ্রাম

  2. C++ দুইটি সংখ্যাকে গুণ করার জন্য প্রোগ্রাম

  3. সি# প্রোগ্রাম নিরাপদ র্যান্ডম নম্বর তৈরি করতে

  4. পাইথন ব্যবহার করে গোপনীয়তা পরিচালনার জন্য নিরাপদ র্যান্ডম নম্বর তৈরি করুন