Mavzu: Psevdotasodifiy sonlar generatorini va uning dasturiy ta’minotini yaratish Ishdan maqsad


Download 248.25 Kb.
bet1/2
Sana14.01.2022
Hajmi248.25 Kb.
#337045
  1   2
Bog'liq
6-amaliy ish Gafforov Sh
2-научные школы управления, 2-labaratorya Elektron[1] (2), lab7, 1 маъруза ТБТ2к, 1 маъруза ТБТ2к, 1 маъруза ТБТ2к, 1 маъруза ТБТ2к, tikuv buyumlari ishlab chiqarish texnologiyasi, 2-topshiriq, baholar

6-amaliy ish

Mavzu: Psevdotasodifiy sonlar generatorini va uning dasturiy ta’minotini yaratish

Ishdan maqsad: Psevdotasodifiy sonlar generatorlar haqida bilim ko’nikmalarga ega bo’lish.

Ishni bajarilish tartibi va qo’yilgan vazifa:

Psevdotasodifiy generatsiya qilish usullaridan birini Delpi, Java, C++ va C# dasturlash tizimlaridan birida dasturiy ta’minot yaratilsin.



Psevdo tasodifiy sonlarni yaratish uchun multiplikativ kelishuv usuli

Multiplicative Congruential Method (Lehmer Method) - bu ma'lum bir diapazonda psevdodandom sonlarni yaratish uchun chiziqli kongruentsial generator turidir. Ushbu usul quyidagicha ta'riflanishi mumkin:





Urug’=seed

  • Urug'lik qiymatini (X 0 ), modul parametrini (m) va ko'paytiruvchi muddatni (a) tanlang.

  • Ishlab chiqarish uchun kerakli miqdordagi tasodifiy raqamlarni boshlang

  • (masalan, noOfRandomNums butun o'zgaruvchisi ).

  • NoOfRandomNums o'lchamdagi tasodifiy sonlarni (bu erda, vektor hisobga

  • olinadi) saqlash uchun saqlash joyini aniqlang .

  • 0 boshla urug'i qiymati bilan vektor indeks.

  • Qolgan indekslar uchun tasodifiy sonlarni yaratish uchun Multiplicative Congruential Method amal qiladi.

Nihoyat, tasodifiy sonlarni qaytaring. Quyida yuqoridagi yondashuv amalga oshiriladi:



Dastur kodi:

// Java implementation of the above approach

import java.util.*;

class GFG{

// Function to generate random numbers

static void multiplicativeCongruentialMethod(

int Xo, int m, int a,

int[] randomNums,

int noOfRandomNums) {

// Initialize the seed state

randomNums[0] = Xo;

// Traverse to generate required

// numbers of random numbers

for(int i = 1; i < noOfRandomNums; i++) {

// Follow the multiplicative

// congruential method

randomNums[i] = (randomNums[i - 1] * a) % m;

} }


// Driver code

public static void main(String[] args) {

// Seed value

int Xo = 3;

// Modulus parameter

int m = 15;

// Multiplier term

int a = 7;

// Number of Random numbers

// to be generated

int noOfRandomNums = 10;

// To store random numbers

int[] randomNums = new int[noOfRandomNums];

// Function Call

multiplicativeCongruentialMethod(Xo, m, a,

randomNums,

noOfRandomNums);

// Print the generated random numbers

for(int i = 0; i < noOfRandomNums; i++) {

System.out.print(randomNums[i] + " ");



}}}


Download 248.25 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2022
ma'muriyatiga murojaat qiling