Intereting Posts

C ++ Случайное число от 1 до очень большого числа (например, 25 миллионов)

Как бы вы создали функцию, которая генерирует случайное число от 1 до 25 миллионов?

Я думал об использовании rand() но правильно ли я думаю, что максимальное число, RAND_MAX = 32000 (там примерно)?

Есть ли способ обойти это, способ, который не уменьшает вероятность выбора очень низких чисел и не увеличивает вероятность выбора высоких / средних чисел?

Редактировать: метод @Jamey D отлично работает независимо от Qt.

Вы могли бы (должны) использовать новый C ++ 11 std::uniform_real_distribution

 #include  std::random_device rd; std::mt19937 gen(rd()); std::uniform_real_distribution<> distribution(1, 25000000); //generating a random integer: double random = distribution(gen); 

Посмотрите на ran3

http://www.codeforge.com/read/33054/ran3.cpp__html

Вы должны быть в состоянии получить то, что вы хотите от него.

Ran3 (по крайней мере, когда я все еще занимался вычислительным моделированием) быстрее, чем rand () с более равномерным распределением, хотя это было несколько лет назад. Он возвращает случайное целочисленное значение.

Например, получив исходный код по ссылке выше:

 int main() { srand(time(null)); int randomNumber = ran3(rand()) % 25000000; int nextRandomNumber = ran3(randomNumber); }