Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

पार्क-मिलर रैंडम नंबर जनरेशन एल्गोरिथम को लागू करने के लिए C++ प्रोग्राम

पार्क-मिलर रैंडम नंबर जेनरेशन एल्गोरिथम रैंडम नंबर जेनरेट करने का एक और तरीका है।

इस प्रकार के एक यादृच्छिक संख्या जनरेटर (RNG) का एक सामान्य सूत्र है:X_{k+1} =g X(k) mod n

जहां मापांक n एक अभाज्य संख्या या अभाज्य संख्या का घात है, गुणक g उच्च गुणक क्रम मॉड्यूल n का एक तत्व है, और बीज X0 n से सहअभाज्य है।

एल्गोरिदम

Begin
   Declare variables n, a, b, c and seed
   Read variables n, a, b, c and seed
   Uniform()
   Declare variable hi, lo, t
   hi=seed divided by b
   lo = seed - b * hi
   t = a * lo - c * hi
   if (t > 0)
      seed = t;
   else
      seed = t + n;
      return seed;
   Done
   For i =0 to n
      Call the function random
   Done
End

उदाहरण कोड

#include <iostream>
using namespace std;
const long n = 2145678965L;
const long a = 763214L;
const long b = 88844L;
const long c = 7766L; i
static long seed = 12345678L;
double uniform() {
   long hi = seed / b;
   long lo = seed - b * hi;
   long t = a * lo - c * hi;
   if (t > 0)
      seed = t;
   else
      seed = t + n;
   return seed;
}
int main(int argc, char **argv) {
   double A[10];
   for (int i = 0; i < 10; i++)
      A[i] = uniform();
      cout << "Random numbers are:\n";
   for (int i = 0; i < 10; i++)
      cout << A[i] << endl;
}

आउटपुट

Random numbers are:
6.50293e+10
4.27187e+10
2.1539e+10
4.62058e+10
1.70792e+10
8.24569e+09
5.93381e+10
3.63839e+10
4.81931e+10
8.91007e+09

  1. सी ++ प्रोग्राम इंटरपोलेशन सर्च एल्गोरिदम लागू करने के लिए

    बाइनरी सर्च तकनीक के लिए, सूचियों को बराबर भागों में बांटा गया है। प्रक्षेप खोज तकनीक के लिए, प्रक्रिया प्रक्षेप सूत्र का उपयोग करके सटीक स्थिति का पता लगाने का प्रयास करेगी। अनुमानित स्थान खोजने के बाद, वह उस स्थान का उपयोग करके सूची को अलग कर सकता है। चूंकि यह हर बार सटीक स्थान खोजने की कोशिश करता

  1. C++ प्रोग्राम यादृच्छिक संख्या उत्पन्न करने के लिए

    आइए देखें कि C++ का उपयोग करके यादृच्छिक संख्याएँ कैसे उत्पन्न करें। यहां हम 0 से कुछ मान में एक यादृच्छिक संख्या उत्पन्न कर रहे हैं। (इस कार्यक्रम में अधिकतम मूल्य 100 है)। इस ऑपरेशन को करने के लिए हम srand () फ़ंक्शन का उपयोग कर रहे हैं। यह सी लाइब्रेरी में है। फ़ंक्शन void srand(unsigned int See

  1. सी ++ प्रोग्राम फिशर-येट्स एल्गोरिथम को एरे शफलिंग के लिए लागू करने के लिए

    फिशर-येट्स एल्गोरिथम सरणी तत्वों का एक यादृच्छिक क्रमपरिवर्तन उत्पन्न करता है अर्थात यह एक सरणी के सभी तत्वों को बेतरतीब ढंग से फेरबदल करता है। सरणी के लिए सभी क्रमपरिवर्तन समान रूप से होने की संभावना है क्योंकि फिशर-येट्स एल्गोरिथम निष्पक्ष है। C++ में सरणी फेरबदल के लिए फिशर-येट्स एल्गोरिथम को ला