Олег Луска
июнь 2015.
19365

Может ли компьютер и человек выдать по-настоящему случайное число?

Ответить
Ответить
Комментировать
2
Подписаться
16
11 ответов
Поделиться

Компьютер может, а человек — нет.

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

Человек очень плох в качестве генератора случайных чисел. Человеческие "случайные" последовательности "ловятся" очень просто. Это связано с нашим неверным интуитивным пониманием теории вероятностей (отсюда в ней так много кажущихся парадоксов). Например, нам кажется, что три повторяющихся подряд числа для равномерного распределения чисел от 1 до 9 — это какое-то безумно редкое событие, а на самом деле это совсем не так.

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

Компьютер может справится с задачей последовательности случайных чисел, используя разные источники энтропии, например время, температуру, шум, распады ядер каких-нибудь элементов. Однако сбор энтропии — процесс нетривиальный и занимает много времени (в сравнении со скоростью работы современных процессоров), так что на практике часто используют более легкие алгоритмы генерации псевдослучайных чисел. Псевдослучайная "компьютерная последовательность" гораздо ближе к настоящей случайное последовательности, чем "человеческая", на самом деле она даже не идет с ней ни в какое сравнение.

Анна Синельниковаотвечает на ваши вопросы в своейПрямой линии
66
-7

Но в итоге получается,  что и компьютер не может выдать действительно случайное число, так?

+3
Ответить

Конечно, компьютер выдаёт "псевдослучайные числа". И увеличение этой самой "случайности"довольно важно,например,в шифровании, если я ничего не путаю

+4
Ответить

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

0
Ответить

Нет, успех будет совсем другой. Компьютер берет сходные данные более непредвзято и обрабатывает их более подходящим образом. Поэтому результат будет более случайным. Особенно если взято два или более случайных зерна для обработки

0
Ответить
Прокомментировать

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

27
-5
Прокомментировать

Вопрос очень четко сформулирован: в нем речь идет не просто о случайном числе, а о "по-настоящему случайном числе". И это очень большая разница. В вычислительных машинах довольно часто используются генераторы случайных чисел. Но эти числа только по названию случайные. Конечно же, машина есть машина. И поэтому в машине любой результат вызван определенной причиной. Другое дело, что можно создать программы, когда этот результат получается достаточно запутанным путем. Для постороннего наблюдателя в таком случае, действительно, выданное генератором число будет выглядеть как "случайное". На самом деле оно никакое не случайное. Если создать для машины в точности те же самые исходные условия, она выдаст опять то же самое "случайное" число. В машине причина и следствие жестко связаны, тут нет никаких вариантов.

Другое дело - человек. Мы с вами искренне верим, что мы вольны определять свое поведение. Что хотим, то и делаем. Это - основа основ устройства человеческого общества. Вас сажают в тюрьму, потому как предполагается, что вы могли не делать плохой поступок, а вот все-таки его сделали. За такое проявление вашей воли - наказание. Или вам дают научную премию за изобретение. И тут тоже предполагается, что вы могли сидеть на даче и ничего не делать. А вместо этого пожелали что-то изобрести. И вот вам - премия! Свобода выбора: основа основ гражданского права, да и вообще правовой системы.

И тут возникает большой вопрос. Современная наука говорит, что живые существа, в том числе человек, стали такими благодаря генокоду. А этот код в своей основе - просто двоичная система, "да" или "нет". Это самая обычная математика, по сути, просто программа, ничуть не лучше и не хуже Тетриса. Мало того, выясняется, что и наш мозг - это система определенным образом связанных синапсов. И тут тоже всего лишь двоичный код, "да" или "нет". Аналог - искусственные нейронные сети. И вот он наш вопрос: если человек от начала и до конца устроен как биологическая вычислительная машина, работающая по определенной программе, то откуда же берется "свобода выбора"? Взяться этой свободе явно неоткуда. Получается, что свобода выбора, это скорее наше с вами субъективное ощущение определенных жестко детерминированных процессов, происходящих внутри нас. Вот и все.

Ничего удивительного в этом, вообще-то, нет. Человек нередко окрашивает те или иные процессы в своеобразную форму. Нет никакого "холодно" или "тепло". А есть только процесс передачи энергии к нам или от нас. Нет "кисло" и "сладко". Нет никаких объективных цветов (красное, синее, зеленое и т.д.), а есть только разная длина электромагнитных волн. Но наш мозг для удобства придумывает определенные субъективные обозначения для тех или иных объективных процессов, вот и все. Точно так же наш мозг окрашивает и еще один определенный процесс в ощущение "свобода выбора".

Какой именно процесс? Я предлагаю следующее определение "живого" существа. Не обязательно оно должно быть построено из органических веществ. Но есть несколько жестких условий. Первое: это должна быть замкнутая система. Второе: эта система защищает себя в определенных границах, противопоставляя себя всему остальному окружающему миру. Эта система подчас, но не всегда, стремится к самовоспроизводству. Это тоже вариант самозащиты, самосохранения.

Должно, однако, быть тут и "третье". У этой системы должна быть какая-то дополнительная программа, которая побуждает ее не существовать пассивно, а активно себя защищать. Вот работа этой маленькой, но важной программы и ощущается нами как "свобода воли".

Понятно, что все, что я тут написал, это жуткая крамола для современной науки. И не только для науки, но и для политики. Ведь речь идет о подрыве основ существования человеческого общества. Но меня нетрудно проверить. Покопайтесь повнимательнее в научных исследованиях, в которых ученые пытаются объяснить феномен свободы воли. И вы придете к выводу, что вразумительного четкого объяснения - нет.

Подведем итог: если я прав, то человек, это просто билогическая машина, довольно остроумно запрограммированная. И в таком случае эта машина никаких "по-настоящему случайных чисел" выдать не может.

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

- Приходится раздваивать сознание. Умом я понимаю детерминированность окружающего мира. Но не даю этому пониманию определять мое поведение. Свое поведение я формирую на основе традиционных субъективных ощущений, холодно, тепло, сладко, красный цвет. И "свобода выбора". Вот такое своеобразное раздвоение личности.

44
-27

отличный ответ!

+3
Ответить

Современная наука считает, что всё-таки есть по-настоящему случайные события.

Согласно квантовой механике, процессы, происходящие в рамках атомов, являются принципиально вероятностными. Это значит, что в квантовых процессах нельзя "восстановить условия и получить тот же результат".

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

+8
Ответить

Согласен с каждым словом!

0
Ответить
Ещё 1 комментарий

Гениально.

0
Ответить
Прокомментировать

Вообще, эта функция и подобные ей являются самыми примитивными и плохими генераторами псевдослучайных чисел. Зато они быстрые, и их хватает, если ваша задача не использует криптографию и статистические методы. Для криптография и статистика задают высокую планку для генераторов псевдослучайных чисел - стандартные функции random до такого не дотягивают. Вообще, задача написания хорошего генератора псевдослучайных чисел весьма интересная и сложная. И, никакая функция настоящих случайных чисел не выдаст - все они будут псевдослучайными, разница у этих функций в их быстродействии и качестве псевдослучайных чисел, которые они выдают.

9
0
Прокомментировать
АВТОР ВОПРОСА ОДОБРИЛ ЭТОТ ОТВЕТ

Дополню ответом про компьютерную часть. Нет, не может.

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

Есть 2 основных метода генерации случайных чисел:

1. "Математический". Следующее случайное число генерируется из предыдущего по какой то определённой формуле. В самом простом случае это какой-нибудь линейный конгруэнтный генератор Очевидно, что случайность здесь строго определена (как бы странно это не звучало)

2. На основании некого внутреннего состояния компьютера. Например: внутреннее время ЦП (центрального процессора), его температура. Есть дорогостоящее внешнее оборудование(стоимостью от десятков до сотен тысяч долларов), которое выдаёт случайное число на основании каких-либо физических законов (например, на основании освещённости прибора, числа частиц, или чего либо ещё). Эти числа (с точки зрения человека) уже более случайны, так как нет алгоритма, по которому можно определить, какое случайное число будет следующим. И как правило, такой случайности вполне хватает. Но даже при таком методе по-настоящему случайным числобыть не может.

5
-2

> Есть дорогостоящее внешнее оборудование(стоимостью от десятков до сотен тысяч долларов), которое выдаёт случайное число... ...так как нет алгоритма, по которому можно определить, какое случайное число будет следующим... Но даже при таком методе по-настоящему случайным число быть не может.

Почему это число не является "настоящим случайным числом"? Если его предсказать невозможно и вероятность выпадения чисел распределена достаточно хорошо, то число называется случайным. Что в нём ненастоящего?

Я считаю этот ответ неправильным.

-2
Ответить

С точки зрения пользователя - да, безусловно, случайное. С формальной же точки зрения: число получено по строго определенному алгоритму, на основании детерменированного внутреннего состояния. Если такое состояние повторится (хоть и вероятность этого не очень велика), то число будет точно таким же. Так о какой же случайности идёт речь?

+1
Ответить

Встроенный генератор псевдослучайных чисел - да, детерменированный. Но дорогостоящее внешнее оборудование, которое вы упоминали, выдаёт случайные числа, например, на основе теплового шума, который не детерменирован. Это пример того, как компьютер может генерировать по-настоящему случайные числа.

-1
Ответить
Ещё 7 комментариев

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

+1
Ответить

По прежнему не согласен. Квантовые процессы фундаментально непредсказуемые (принцип неопределённости Гейзенберга). Как правильно отметила Мария Терентьева: "Достаточно измерить любой непредсказуемый физический феномен, чью непредсказуемость можно проследить до уровня законов квантовой механики" - и мы получим по-настоящему невычисляемые числа.

-1
Ответить

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

Насколько я понимаю, вопрос в том, может ли компьютер выдать число "случайно". Ответ - нет, не может. Случайно компьютер ничего сделать или вычислить не может. Он может взять "случайные" данные (о которых мы с Вами говорим) и на их основе выдать число, которое мы будем считать "случайным". Но в его вычислениях никакой случайности не будет - число будет вычислено из входных данных по строго определённому алгоритму, в котором ничего "случайного" нет.

+1
Ответить

Вы хоть немного квантовой физикой интересовались? Хотя бы совсем чуть-чуть, на уровне "принципа неопределённости"?

Если интересовались, то вам должно быть известно, что в квантовом микромире даже "точно те же самые входные данные" при повторном измерении могут дать (и, скорее всего, дадут) иной результат. В этом и есть фундаментальность принципа неопределённости. Грубо говоря (очень грубо, но для нашей темы сойдёт) в квантовом микромире никогда не бывает "того же самого" состояния, каждое измерение - уникально и непредсказуемо.

-1
Ответить

Нет, не интересовался, это не входит в сферу моих интересов.

Этот спор ни к чему не ведёт. Я говорю о том, что компьютер действует по строго определённому алгоритму и сам по себе ничего случайного сделать не может, в том числе - выдать случайное число. Вы говорите о неопределённости квантового микромира и о том, что на его уровне возможна настоящая случайность. Ну, я это допускаю.

Но это не отменяет того факта, что выданное компьютером число будет на получено на основании каких-либо измерений. Является ли результат, полученный по определённому алгоритму на основании "случайных" исходных данных случайным? Я считаю, что нет.

+1
Ответить

> Является ли результат, полученный по определённому алгоритму на основании "случайных" исходных данных случайным? <

Почему вы теперь слово "случайный" взяли в кавычки? Вы же согласились, что в квантовом микромире измерения по-настоящему случайные.

"Является ли результат, полученный на основании случайных исходных данных, случайным?" На мой взгляд, ответ очевиден.

Предлагаю и вам и автору вопроса подумать над этим (если ему всё ещё интересно). Возможно, он сочтёт разумным выбрать в качестве правильного ответ с наибольшим количеством плюсов (ответ Анны Синельниковой), где подробно описано, почему у человека плохо получаются случайные числа и как компьютер может это сделать хорошо.

-1
Ответить

ответ не правильный просто потому, что существуют хардвар для выдачи истинно случайных чисел. Сам по себе ПК без такого хардвара не может выдавать истинно случайные числа.
Но в целом -- это более чем возможно уже много лет.

Пруф: https://goo.gl/Q6NAVm

и именно поэтому ответ неправильный.

0
Ответить
Прокомментировать
Читать ещё 6 ответов
Ответить