Публикация была переведена автоматически. Исходный язык: Русский
Использование случайных чисел в ПК не ограничивается играми. У них большое практическое применение в области безопасности, шифрования данных, генерации шума для обучения моделей и прочее и прочее.
Сейчас программисту ничего не стоит получить такое число - достаточно вызвать нужную функцию языка программирования. Генерация случайного числа это просто набор математических выражений, и если их выполнять всегда с одними и теми же параметрами или начальными условиями, результат всегда будет один и тот же. Например 2+3*2 всегда будет 8. Поэтому такие генераторы используют некое начальное значение на базе которого рассчитывается следующее, которое тоже будет случайным до определённой степени. Но это случайное начальное значение нужно где то взять. Самый простой вариант получения начальных условий на современном железе - использовать часы компьютера или счётчик времени от момента запуска ПК, хотя есть и другие варианты. Например, шум радиоэфира, тепловой шум некоторых полупроводниковых материалов, квантовые генераторы (на базе детекторов распада частиц) и прочие аппаратные генераторы, которые будут немного случайнее. Программные же средства являются по своей сути генераторами псевдослучайных чисел.
На заре компьютерной индустрии всё было иначе. В компьютерах не было часов, не было операционных систем, хранящих информации о моменте запуска ПК, не было случайных процессов, всё подчинялось строгой математике, и было довольно проблематично где то взять относительно случайные начальные условия. С этой задачей я впервые столкнулся ещё в школе, когда писал на ассемблере программы под процессоры Z80 и i8080, а позже, и при написании игры 2048 для Apple 1. И я всё ещё продолжаю ещё решать.
Не буду писать алгоритмы или описания готовых генераторов, в сети очень много информации на этот счёт, вместо этого хочу предложить читателю попробовать размять мозги и решить интересную задачу (желательно без подсказок AI или материалов в сети) - написать функцию (алгоритм) и получить псевдослучайное число без использования часов ПК или возможностей операционной системы.
Пишите в комментариях Ваши варианты. Будет интересно их обсудить.
Использование случайных чисел в ПК не ограничивается играми. У них большое практическое применение в области безопасности, шифрования данных, генерации шума для обучения моделей и прочее и прочее.
Сейчас программисту ничего не стоит получить такое число - достаточно вызвать нужную функцию языка программирования. Генерация случайного числа это просто набор математических выражений, и если их выполнять всегда с одними и теми же параметрами или начальными условиями, результат всегда будет один и тот же. Например 2+3*2 всегда будет 8. Поэтому такие генераторы используют некое начальное значение на базе которого рассчитывается следующее, которое тоже будет случайным до определённой степени. Но это случайное начальное значение нужно где то взять. Самый простой вариант получения начальных условий на современном железе - использовать часы компьютера или счётчик времени от момента запуска ПК, хотя есть и другие варианты. Например, шум радиоэфира, тепловой шум некоторых полупроводниковых материалов, квантовые генераторы (на базе детекторов распада частиц) и прочие аппаратные генераторы, которые будут немного случайнее. Программные же средства являются по своей сути генераторами псевдослучайных чисел.
На заре компьютерной индустрии всё было иначе. В компьютерах не было часов, не было операционных систем, хранящих информации о моменте запуска ПК, не было случайных процессов, всё подчинялось строгой математике, и было довольно проблематично где то взять относительно случайные начальные условия. С этой задачей я впервые столкнулся ещё в школе, когда писал на ассемблере программы под процессоры Z80 и i8080, а позже, и при написании игры 2048 для Apple 1. И я всё ещё продолжаю ещё решать.
Не буду писать алгоритмы или описания готовых генераторов, в сети очень много информации на этот счёт, вместо этого хочу предложить читателю попробовать размять мозги и решить интересную задачу (желательно без подсказок AI или материалов в сети) - написать функцию (алгоритм) и получить псевдослучайное число без использования часов ПК или возможностей операционной системы.
Пишите в комментариях Ваши варианты. Будет интересно их обсудить.