Я реализую свой собственный ГПСЧ, где я должен использовать линейный конгруэнтный генератор. Один из моих методов должен генерировать следующее псевдослучайное число, как показано ниже. Семя получено от пользователя ранее.
MyRandom(long seed) {
Random random = new Random();
random.setSeed(seed);
}
Это метод, который должен генерировать следующее псевдослучайное число. Это то, что я пытался написать, но я действительно не знаю, как заставить это работать в следующих числах. a и b - выбранные константы, а m - выбранное простое число.
int next(int bits) {
long seed;
seed = (a * seed) + (b % m);
return (int) (seed >>> (48 - bits));
}
Нужно ли мне каким-то образом инициализировать начальное число в методе next? @KevinAnderson
@ Eve00, возможно, стоит прочитать о переменных-членах. они позволяют сохранять состояние между вызовами функций




ПОДСКАЗКА: ваш метод
nextне использует начальное число, ранее установленное пользователем; на самом деле он использует нулевое семя. Вы можете догадаться, почему?