Previous Page  19 / 25 Next Page
Information
Show Menu
Previous Page 19 / 25 Next Page
Page Background

А.Ф. Деон, Ю.А. Меняев

104

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 2

Имена

P020501

и

cP020501

выбраны произвольно.

using nsDeonYuliTwist28DA; // класс вихревого генератора

namespace P020501

{ class P020501

{ static void Main(string[] args)

{ cDeonYuliTwist28DA CT = new cDeonYuliTwist28DA();

CT.Start(); // запуск генератора

Console.WriteLine("w = {0} N = {1}", CT.w, CT.N);

int[] cX = new int[CT.N]; // массив счетчиков

for (int i = 0; i < CT.N; i++) cX[i] = 0;

for (int n = 0; n < CT.N; n++)

{ int z = CT.Next();

cX[z]++; // счетчик случайной величины

}

int count0 = 0; // количество пропущенных величин

int count1 = 0; // количество однократных величин

int count2 = 0; // количество двукратных величин

for (int i = 0; i < CT.N; i++)

{ if (cX[i] == 1) count1++; // однократные

else if (cX[i] == 2) count2++; // двукратные

else if (cX[i] == 0) count0++; // никогда

}

Console.Write("count0 = {0} ", count0);

Console.Write("count1 = {0} ", count1);

Console.WriteLine("count2 = {0} ", count2);

Console.ReadKey(); // просмотр результата

}

}

}

После выполнения программы следующие две строки появляются на мо-

ниторе:

w = 16 N = 65566

count0 = 0 count1 = 65536 count2 = 0

Чтобы убедиться в равномерности одного полного вихря при заданных по

умолчанию конгруэнтных константах

a

и

c

, необходимо сгенерировать

= ⋅ = ⋅

=

16 65536 1048576

nwN w N

случайных величин. Следующий код выпол-

няет такую работу. При этом каждая равномерно распределенная случайная ве-

личина должна появиться

16

w

=

раз. Имена

P020502

и

cP020502

выбраны про-

извольно.

using nsDeonYuliTwist28DA; // класс вихревого генератора

namespace P020502

{ class P020502

{ static void Main(string[] args)

{ cDeonYuliTwist28DA CT = new cDeonYuliTwist28DA();

CT.Start(); // старт генератора

int nwN = CT.w * CT.N;//число вихрей одной пары a и c

Console.WriteLine("w = {0} N = {1} nwN = {2}",

CT.w, CT.N, nwN);

int[] cX = new int[CT.N]; // массив счетчиков

for (int i = 0; i < CT.N; i++) cX[i] = 0;