Генерация случайного числа в диапазоне [0, n) в C? - PullRequest
0 голосов
/ 20 апреля 2009

Хотите создать действительно простой метод генератора случайных чисел в C. Числа должны быть от 0 до 24 и могут быть, например, 14,5f.

Любая помощь будет отличной, спасибо!

Ответы [ 4 ]

7 голосов
/ 20 апреля 2009
float getRand() {
  float rnd = rand();
  rnd /= RAND_MAX;
  return rnd * 24.0f;
}

Перед использованием убедитесь, что вы заполнили генератор случайных чисел srand.

4 голосов
/ 20 апреля 2009

Mersenne_twister не только очень прост, но и очень силен.

См код по ссылке.

Однако, если вы можете использовать Лицензия GPL , используйте Научная библиотека GNU (GSL) Специальная проверка Примеры генераторов случайных чисел с Часть руководства по генерации случайных чисел

Там есть много вещей, от простых равномерных случайных чисел до других распределений.

3 голосов
/ 20 апреля 2009

Вы можете использовать встроенный в С генератор случайных чисел, чтобы получить целое число от 0 до 30 тысяч примерно так:

`srand(time(NULL));
    int x= rand();`

Вам просто нужно сделать некоторое деление, чтобы получить десятичное число вместо целого числа.

3 голосов
/ 20 апреля 2009

Взгляните на линейные конгруэнтные генераторы , их довольно просто реализовать даже при моем низком знании математики.

Похоже, я неправильно понял исходный вопрос, я думал, что вы хотите запустить свой собственный генератор (для домашней работы, веселья и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...