Генераторы случайных чисел являются псевдослучайными. Это означает, что они используют некоторый «алгоритм», чтобы придумать следующий «случайный» номер. Другими словами, если вы начинаете с того же семени в этом алгоритме, вы получаете одну и ту же последовательность случайных чисел каждый раз. Чтобы решить эту проблему, вы должны убедиться, что вы засеваете генератор случайных чисел. Иногда желательно использовать одно и то же семя, чтобы вы могли определить, работает ли логика вашей программы. В любом случае, один общий способ, с помощью которого люди выкладывают свои программы, - это использование времени (NULL). время дает время, прошедшее (в секундах) с момента эпохи. Это означает, что эта функция меняется каждую секунду. Таким образом, если вы засеете свой генератор случайных чисел с помощью (srand (time (NULL)) в начале программы, вы получите различную последовательность случайных чисел каждую секунду, в которой вы запускаете свою программу. случайное число, которое вы запрашиваете. Просто сделайте это один раз в самом начале вашего кода, а затем оставьте его в покое.
Ваше название говорит C#, но я ответил на C++. Вы захотите включить ctime для этого. может также быть полезным, чтобы посмотреть на новый стиль генерации случайных чисел, поскольку rand() в наши дни не очень случайен. Посмотрите на #include random и сделайте себе двигатель и дистрибутив, чтобы вытащить случайные числа. Не забудьте засеять там также!
ли это должен быть код C++ или C#? Кажется, вы пишете C++-код, и вы его отметили как C++, но заголовок и вопрос говорят C#. –
Проверьте это: http://stackoverflow.com/questions/1716308/how-does-a-random-number-generator-work –
[Не используйте 'rand()'] (https: //channel9.msdn. com/Events/GoingNative/2013/rand-Considered-Harmful) – ArchbishopOfBanterbury