это какой?
Истинный ГСЧ не выдаёт “неповторяющиеся числа”, он выдаёт неповторяющиеся последовательности чисел.
Вы ошибаетесь.
В условии все написано.
А в моем ответе, кроме того, приведены рекомендации и для случая изменения условий задачи.
Сложно сказать, что такое “Истинный ГСЧ”. Может ли он случайно повторить число, может ли он случайно повторить последовательность. Наблюдатель за кучей ГСЧ может только случайно определить истинный ГЧС или еретический.
Может.
Может.
На то он и “случайный”, что от него можно ожидать чего угодно.
Он непременно (в зависимости от диапазона чисел и длины ряда) повторит значение, но неповторяющаяся последовательность стремится к бесконечности. Вопрос только в реализации ГСЧ (и ГПСЧ, как дешевой, но поворяющей функционал, альтернативы) - насколько она качественна и насколько усечена бесконечность.
Кому-то хватает 100 чисел в ряде, кому-то - миллион. В криптографии, например, оценивается время взлома. Бесконечность там не совсем обязательна.
Ну например метод Фибоначчи
или вот это:
От алгоритмов перешли на сам ГСЧ. Насколько знаю, чем “случайней” случайность, тем дольше это число получается. И всегда ищут компромисс скорость/качество.
Ну, @BOOM же пытается нащупать ГПСЧ особого качества - вот тред и в начал возносится к истоку, так сказать.
ГСЧ зависит от наблюдателя. Если у наблюдателя память как у рыбки, то даже генератор одного числа будет для него случаен. И обратно. Не садитесь играть в карты с человеком, который может запомнить все карты в игре. Как бы случайно не разложили, все равно вас поимеют. Да не ищут компромисс в ГСЧ, а как поиметь ближнего. Достаточно что бы для пользователя ГСЧ выдаваемые числа случайны, а для хозяина ГСЧ деньги капали в кошелек.
Очень хорошие ГСЧ в казино
Можно. Но это выражение «переменной длины» означал только одно - количество элементов в результирующем массиве может быть разным (или 5 или 20 или 200). А как именно это реализовать - я сам решу.
Чем это? 5, 50, 3, 12 - случайные числа? Они повторяются?
Мне очень понравился алгоритм (кажется от @nik182, я его «моделировал» выше из 5 пунктов). А так же с двумя массивами и перемешиванием. Попробую оба…
Это частный случай. ГСЧ такого не гарантирует.
Так мне и нужен мой, частный случай ))
Ну…тогда любой генератор не генератор) ибо ГСЧ не выдаёт числа от минус бесконечности до плюс бесконечности) Всегда есть ограничения.
И вообще надо переформулировать задачу:
Последовательный ряд чисел разместить в случайном порядке, выкидывая “лишние” числа если не влезают в целевой массив.
Генератор частных случаев я описал сразу. Он гарантирует уникальность чисел в ряде. Другие ПСЧ - наврядли.
Я написал о том, что ГСЧ не гарантирует неповторяемости чисел. Придётся страдать заранее неизвестное время.
Идеальный ГСЧ недостижимо, это понятно.
Ясен пень числа могут повторятся. Вот и пытаемся ограничить.
Кстати, видеоэффект, когда изображение плавно заменяется другим посредством попиксельного вывода. Там ведь, наверно, тоже подобный принцип неповторяющихся пикселей.
Скорее всего. Но там уже может быть и конгруэнт - гпсч в эффективном виде такой задаче наврядли нужен.