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

Генератор равномерных случайных величин по технологии полного вихревого массива

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

99

return;

}

a1e = (a1b + a2e) / 2; // середина для a

a2b = a1e;

a1e = DeonYuli_MinusA(a1e); // слева от середины

a2b = a1e + 4; // справа от середины

}

//---------------------------------------------------------------

int DeonYuli_PlusA(int a)

{ if (a < 1) { a = 1; return a; }

int z = a; // нижняя граница для a

for (int i = 0; i < 3; i++)

if (a % 4 != 0) a--; // условие равномерности

else break;

a++; // правильное значение константы a

if (a < z) a += 4; // справа от нижней границы

if (a >= N1) a -= 4; // слева от верхней границы

return a;

}

//---------------------------------------------------------------

int DeonYuli_MinusA(int a)

{ if (a < 1) { a = 1; return a; }

int z = a; // нижняя граница для a

for (uint i = 0; i < 3; i++)

if (a % 4 != 0) a--; // условие равномерности

else break;

a++; // правильное значение константы a

if (a > z) a -= 4; // слева от верхней границы

return a;

}

//---------------------------------------------------------------

public void SetC(double scb, double sce)

{ cbf = Math.Abs(scb);

cef = Math.Abs(sce);

if (cbf > 1.0) cbf = 1.0;

if (cef > 1.0) cef = 1.0;

if (cbf > cef) cef = cbf;

}

//---------------------------------------------------------------

void DeonYuli_SetC()

{ cb = (int)(N1 * cbf); // нижняя грань для c

if (cb % 2 == 0) cb += 1; // только нечетное c

if (cb > N1) cb = N1; // максимальное значение

ce = (int)(N1 * cef); // верхняя грань для c

if (ce % 2 == 0) ce -= 1; // только нечетное c

if (ce > N1) ce = N1; // максимальное значение

if (cb > ce) ce = cb;

c = cb; // начало конгруэнтной константы c

}

//---------------------------------------------------------------

public void SetX0(double xs)

{ x0 = (int)(N1 * Math.Abs(xs));

}

//===============================================================

}

}