Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
Здравствуйте, areh, Вы писали:
A>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
A>надеюсь на вашу помощь...
Подробно эта тема рассмотрена, насколько я помню, во втором томе Кнута.
Ну, а практические реализации генерации случайных чисел можно найти здесь.
Здравствуйте, areh, Вы писали:
A>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
попробуй такой код:
a = rand() % n;
n — это диапазон в котором желаешь получить псевдослучайное число, от 0 до n-1.
Я проверял, получались довольно равномерные результаты. Причем, если тебе нужно получить число в диапазоне степени двойки, то операцию остатка от деления можно заменить на логическое &.
Тогда это будет выглядеть так:
a = rand() & (pow(2, n)-1);
В качестве фукции rand() нужно иметь функцию, генерирующую большое случайное число, хотябы десяток порядков
Здравствуйте, Crush, Вы писали:
C>Здравствуйте, areh, Вы писали:
A>>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
C>попробуй такой код:
C>
C>a = rand() % n;
C>
C>n — это диапазон в котором желаешь получить псевдослучайное число, от 0 до n-1. C>Я проверял, получались довольно равномерные результаты. Причем, если тебе нужно получить число в диапазоне степени двойки, то операцию остатка от деления можно заменить на логическое &. C>Тогда это будет выглядеть так:
C>
C>a = rand() & (pow(2, n)-1);
C>
C>В качестве фукции rand() нужно иметь функцию, генерирующую большое случайное число, хотябы десяток порядков
к большому сожалению, Rnd (or Rand) используют случайные числа, выробатываемые разными компами, мне надо, чтобы на двух разных компах, от одинаковых параметров выробатывались одни и те же числа...
Здравствуйте, areh, Вы писали:
A>Здравствуйте, Crush, Вы писали:
C>>Здравствуйте, areh, Вы писали:
A>>>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
C>>В качестве фукции rand() нужно иметь функцию, генерирующую большое случайное число, хотябы десяток порядков
A>к большому сожалению, Rnd (or Rand) используют случайные числа, выробатываемые разными компами, мне надо, чтобы на двух разных компах, от одинаковых параметров выробатывались одни и те же числа...
Здравствуйте, areh, Вы писали:
A>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
MD5
... << RSDN@Home 1.1.4 beta 1 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, areh, Вы писали:
A>Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
Попробуй так:
static unsigned long int next = 1; //начальное значениеint crazyRand(void)
{
next = next * 1103515245 + 12345;
return (unsigned int) (next / 65536) % 32768;
}
A>к большому сожалению, Rnd (or Rand) используют случайные числа, выробатываемые разными компами, мне надо, чтобы на двух разных компах, от одинаковых параметров выробатывались одни и те же числа...
Ничего не понял... Ставь seed на обоих машинах одинаковым и получишь одинаковую последовательность.