точно
точно
Погодите-ка! Вы утверждаете, что компьютеры детерминистичны? Что их можно заставить повторять один и тот же триллион шагов снова и снова? Да ладно! Почему же тогда мой ноутбук то и дело меня подводит? Почему мой текстовый процессор завис во вторник, хотя я делал то же самое, что прекрасно работало в понедельник?
Погодите-ка! Вы утверждаете, что компьютеры детерминистичны? Что их можно заставить повторять один и тот же триллион шагов снова и снова? Да ладно! Почему же тогда мой ноутбук то и дело меня подводит? Почему мой текстовый процессор завис во вторник, хотя я делал то же самое, что прекрасно работало в понедельник?
Но вы делали не совсем то же самое. Он завис не потому, что он индетерминистичен, а потому, что во вторник он пребывал не в точно том же состоянии, что и в понедельник. Должно быть, в промежутке ваш ноутбук сделал что-то, что подняло скрытый “флаг” или задействовало ту часть текстового процессора, которую вы никогда прежде не активировали, и это привело к переключению какого-то бита, после чего он сохранился в новом положении при выключении компьютера, а теперь текстовый процессор споткнулся об это крошечное изменение и завис. И если вы каким-то образом сумеете вернуть его в точно то же самое состояние, в котором он пребывал во вторник утром, он зависнет снова.
не совсем
точно
точно
Что насчет “генератора случайных чисел”? Я думал, в мой компьютер встроено устройство для создания хаотичности по требованию.
Что насчет “генератора случайных чисел”? Я думал, в мой компьютер встроено устройство для создания хаотичности по требованию.
В каждый компьютер сегодня встроен генератор “случайных чисел”, к которому при необходимости может обращаться любая работающая на компьютере программа. (До появления компьютеров люди покупали для своих исследований книги, все страницы которых были заполнены расставленными в случайном порядке числами, сгенерированная последовательность которых проходила все проверки на случайность, разработанные математиками. Само собой, каждый экземпляр конкретного издания такой книги содержал одну и ту же случайную последовательность. Одну из лучших книг в 1955 г. опубликовала организация RAND Corporation – в этой книге содержался миллион случайных цифр.) Последовательность чисел, генерируемых так называемым генератором случайных чисел, на самом деле не случайна, а лишь псевдослучайна: она “математически сокращаема” в том смысле, что эту бесконечно длинную последовательность можно заключить в конечно определенный механизм, который поставит ее генерацию на поток. Допустим, например, что ваш генератор случайных чисел – это программа, описание которой уложится, скажем, в один мегабайт (восемь миллионов бит), но генерируемая ею последовательность (всегда одна и та же) на самом деле бесконечна. Если бы вы захотели переслать кому-то эту бесконечную последовательность, вам бы не пришлось для этого отправлять бесконечно длинное электронное письмо, записывая последовательность буквально. Вы могли бы просто переслать свой алгоритм размером в мегабайт, и ваш визави получил бы доступ ко всей бесконечной последовательности. В этом суть генератора псевдослучайных чисел. При каждом перезапуске генератора случайных чисел – например, при каждой перезагрузке компьютера – он всегда начинает выдавать точно такую же последовательность цифр, но эта последовательность столь же очевидно лишена закономерностей, как если бы ее генерировали подлинно случайные квантовые флуктуации. Можно сказать, что этот генератор – встроенная “таблица случайных чисел”, подобная той, что вы получите на очень длинной петле видеопленки, записывая результаты миллионов вращений рулетки при честной игре. Петля всегда возвращается “к началу” – к моменту запуска компьютера. Иногда это важно. Компьютерные программы, обращающиеся к генератору случайных чисел в различных точках “выбора”, все равно будут проходить одну и ту же последовательность состояний, если их снова и снова будут перезапускать, а если вам захочется проверить программу на баги, вы всегда будете тестировать одну и ту же “случайную выборку” состояний, если только не предпримете необходимые шаги (достаточно простые), чтобы заставить программу время от времени выбирать следующее “случайное” число из нового фрагмента потока цифр.