A>к большому сожалению, Rnd (or Rand) используют случайные числа, выробатываемые разными компами, мне надо, чтобы на двух разных компах, от одинаковых параметров выробатывались одни и те же числа...
Ничего не понял... Ставь seed на обоих машинах одинаковым и получишь одинаковую последовательность.
Уважаемые, подскажите пожалуйста алгоритм (или где его стоит искать) для генерации некоторого "случайного" числа, от заданных параметров, желательно, чтобы значения функции были распределены достаточно равномерно...
Здравствуйте, 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;
}