Новости | Об игре | Форум
08:39, 2393 онлайн
Форумы » Идеи и предложения » ГСЧ, что-то игровой явно подкупной(((( 

АвторТема: ГСЧ, что-то игровой явно подкупной((((
-_(KILLER)_-



 1 
 -55   
  написано: 18.04.2021 19:29:00 
1.Выигрывают одни и те же.
2. Распоеделение в боях против малыша 2 крепыша.

Предлагаю внедрить научнодоказанный линейный конгруэнтный метод.

Применяется в простых случаях и не обладает криптографической стойкостью.
Этот алгоритм заключается в итеративном применении следующей формулы:

X[k+1]=(a*X[k]+c) mod m

Этот алгоритм используется в ANSI-C. Рассмотрим его:

#define RAND_MAX 32767

unsigned long next=1;

int rand(void) {
next=next*1103515245m;
return((unsigned int)(next/65536)2768);
}

void srand(unsigned int seed) {
next=seed;
}

Где a > 0, c > 0, m > 0 - некоторые целочисленные константы. Получаемая
последовательность зависит от выбора стартового числа X0 и при разных его
значениях получаются различные последовательности случайных чисел. В то же
время, многие свойства последовательности Xk определяются выбором коэффициентов
в формуле и не зависят от выбора стартового числа. Ясно, что последовательность
чисел, генерируемая таким алгоритмом, периодична с периодом, не превышающим m.
При этом длина периода равна m тогда и только тогда, когда:

1) НОД(c,m) = 1 (т.е. c и m взаимно просты);
2) a - 1 кратно p для всех простых p - делителей m;
3) a - 1 кратно 4, если m кратно 4.

При реализации выгодно выбирать m = 2e, где e - число бит в машинном слове,
поскольку это позволяет избавиться от относительно медленной операции
приведения по модулю. Младшие двоичные разряды сгенерированных таким образом случайных чисел
демонстрируют поведение, далёкое от случайного, поэтому рекомендуется
использовать только старшие разряды. Для генерации числа в диапазоне *0 - 2^32 -1* достаточно простого
умножения на мультипликатор и сложения с инкрементом. Деление по модулю
будет произведено автоматически при переполнении. Значения
мультипликатора и инкремента для этого случая получены в исследованиях
D. Knuth и H.W. Lewis.

Они рекомендуют использовать следующие коэффициенты:
a = 1664525, c = 1013904223, m = 2^32
Ганц-Самара



 2 
 -14   
  написано: 18.04.2021 19:41:37 
Нечайно плюс поставил
*NIMFOMANKA*



 3 
 28   
  написано: 18.04.2021 19:43:42 
Интересно, ТС хоть одно слово понял из того, что написал или копирнул не глядя
-_(KILLER)_-



 4 
 4   
  написано: 18.04.2021 19:47:21 
3
Могу объяснить на пальцах:
Когда выпадают одни и те же числа без равномерного выпадания других - значит пора менять программный алгоритм.
-_(KILLER)_-



 5 
   
  написано: 18.04.2021 19:50:28 
Ланный метод является одним из самых стабильных в работе и АДМИНИСТРАЦИИ НЕОБЯЗАТЕЛЬНО использовать приведённые данные, а подставить свои.
-_(KILLER)_-



 6 
   
  написано: 18.04.2021 19:52:06 
На данный момент существует вероятность вот такого абсурда:
https://www.gwars.io/warlog.php?bid=1469098604
vada_spb



 7 
 18   
  написано: 18.04.2021 19:53:35 
Давно пора пересмотреть рандом в игре, как в лото, так и в других во всех направлениях, иногда и правда кажется, что с ним что то не так
Поэтому идеи огромный плюс
Тема закрыта -_(KILLER)_-

К списку тем