Я тоже искал решение, и, к счастью, нашел этот сайт Hide My Referrer . Меня поразило то, что он даже работает для https> https-запросов.
Он создаст ссылку, которую вы можете использовать, которая будет делать именно то, что вы ищете.
Генератор случайных чисел создает псевдослучайные числа. Чтобы получить разные числа на каждом прогоне, вам необходимо ввести случайное семя в начале вашей программы. Это выбирает другую начальную позицию в псевдослучайном потоке.
Последовательность псевдослучайных чисел, поступающих от вызова (s) до random_number
, зависит от алгоритма, используемого процессором, и значения семени.
Начальное значение семпла зависит от процессора. Для некоторых процессоров это начальное значение будет одинаковым при каждом запуске программы, а для некоторых это будет другим. Первый случай дает повторяемую псевдослучайную последовательность, а вторая - неповторяющуюся последовательность.
gfortran (до версии 7) попадает в эту первую категорию. Таким образом, вам нужно будет явно изменить случайное семя, если вы хотите получить неизменяемые последовательности.
Как указано в другом ответе , внутреннее random_seed
можно использовать для установки значение семени и перезапустить псевдослучайный генератор. Опять же, это зависит от процессора, что происходит, когда вызов call random_seed()
(то есть без аргумента put=
). Некоторые процессоры будут перезапускать генератор с повторяемой последовательностью, а некоторые - нет. gfortran (опять же, перед версией 7) находится в первой категории.
Для процессоров, где call random_seed()
приводит к повторяемой последовательности, для генерации отдельных последовательностей потребуется явное переменное семя во время выполнения. Пример для более старых версий gfortran можно найти в документации .
Следует отметить, что выбор семени может быть сложной задачей. Мало того, что будут проблемы с переносимостью, но может потребоваться помощь в обеспечении того, чтобы генератор не перезапускался в области с низкой энтропией. Для программ с несколькими изображениями пользователь должен будет работать, чтобы иметь разные последовательности на этих изображениях.
В заключительной заметке в проекте стандарта Fortran 2018 есть предложение по внутреннему random_init
. Это обрабатывает оба случая выбора повторяемости между вызовами и различиями над изображениями (coarray).