Возможно ли для равномерного дискретного распределения (iform_int_distribution) генерировать последовательные (или одинаковые) числа при правильном использовании?

Собираюсь разместить мою правку здесь:

В комментариях обсуждается фактический характер случайности. Что я понимаю, так это то, что при генерировании «случайных» чисел ни одно число не может быть более или менее вероятно, чем другое.

Надеюсь, более справедливое перефразирование моего вопроса:

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


Просто чтобы быть ясным, прежде чем я спрашиваю, я прошу только из любопытства. К счастью для меня, я не кошка.

Я создал функцию быстрой сортировки для университетского проекта и подумал, что, возможно (вместо того, чтобы просто ударить по клавиатуре какое-то время), я мог бы протестировать ее с некоторыми списками целых чисел, сгенерированными случайным образом.

std::vector<int> unsorted_list;
std::random_device ran_dev; // Initialise a new random device
std::uniform_int_distribution<> uni_dist(1, 100); // Create Uniform Distribution
for (int i = 0; i < 5; i++) {
unsorted_list.push_back(uni_dist(ran_dev));
}

Могу ли я полностью полагаться на эту реализацию для получения случайных чисел, которые всегда кажутся действительно случайными (равномерно распределенными)?

Вы можете подумать, что я глупый … Ясно, что класс заявляет, что это равномерное распределение, поскольку в нем невозможно быть неравномерным … Но есть ли какой-либо из этих выводов даже возможный? И если да, то насколько вероятно?

(1, 1, 1, 1, 1)
(1, 2, 3, 4, 5)
(2, 4, 6, 8, 10)

Я полагаю, что последний вывод более вероятен, чем первый или второй (особенно при использовании границ от 0 до 100), но мое любопытство все еще имеет меня.
Я особенно глуп? я никогда не был очень хорошо разбираюсь в математике, так что, хотя я начинаю понимать символы и терминологию, я все еще смотрю на некоторые объяснения и просто «застеваю», так что мое прибегание к помощи до сих пор не помогло.

-2

Решение

У вас гораздо больше шансов получить список с большим количеством разных чисел, чем список с большим количеством повторов. Тем не менее, истинный ГСЧ будет производить любое число единиц в строке, если используется достаточно долго, и, поскольку предполагается, что ГСЧ выглядит как истинный ГСЧ, можно ожидать, что ГСЧ будет делать то же самое.

Истинные RNG обычно проходят независимые испытания, то есть результаты одного испытания ничего не говорят вам о результатах другого. Знание того, что сто раз подряд выпало, ничего не говорит вам о том, что будет делать такой ГСЧ в следующем испытании. Поскольку PRNG должны выглядеть как RNG, вы можете ожидать от них того же.

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]