Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save anonymous/d3d80ff66d4c6ecf2a69e71f6cf544d6 to your computer and use it in GitHub Desktop.
Save anonymous/d3d80ff66d4c6ecf2a69e71f6cf544d6 to your computer and use it in GitHub Desktop.
Интеллектуальные задачи для обезьян видео

Интеллектуальные задачи для обезьян видео



Ссылка на файл: >>>>>> http://file-portal.ru/Интеллектуальные задачи для обезьян видео/


Реакция двух обезьян на награду за их работу
Интеллект обезьян
Тайны интеллекта обезьян: о чем молчат животные
























Потрясающий факт, но еще интереснее попытаться понять, сколько же времени ей понадобится для набора конкретного текста. Чтобы не водить лишний параметр — скорость набора обезьяной — будем искать ответ на вопрос: Решению этой задачи и посвящен этот пост. Попутно объясняется префикс функция и ее свойства. Понятно, что время, потраченное обезьяной на набор конкретного текста — это некоторая случайная величина. Поэтому логично спросить про ее математическое ожидание. Префикс функция Именно эта функция поможет нам решить поставленную задачу. Префикс функция была введена Д. Праттом и параллельно Д. Моррисом для их знаменитого алгоритма поиска подстроки в строке алгоритм КМП. Префикс функция для строки s возвращает длину самого длинного собственного префикса строки, который также является ее суффиксом. Префикс — это просто начало строки, если отбросить сколько-то символов с конца. Так у строки "aba" есть 4 префикса: Суффикс — тоже самое, но символы удаляются с начала. При этом некоторые суффиксы и префиксы могут совпасть. Для строки "aba" есть 3 таких префикса-суффикса: Суффикс или префикс называется собственным , если он короче всей строки. Где pref k s — это префикс длины k строки s , а suf k s — это суффикс длины k строки s. Как в алгоритме КМП, так и в других применениях, гораздо полезнее рассматривать префикс функцию сразу для всех префиксов данной строки. Да, звучит страшно — для каждого префикса нужно найти наибольший собственный префикс, который совпадает с суффиксом префикса. Но на самом деле все просто:. Такая расширенная префикс функция полезна прежде всего тем, что ее проще вычислять, чем просто. Так получается потому, что максимальный префикс-суффикс имеет длину. Следующий по длине префикс-суффикс будет короче. Но поскольку первый префикс-суффикс встречается как в начале, так и на конце строки s , то следующий префифкс-суффикс будет длиннейшим префиксом-суффиксом в первом префиксе-суффиксе. Поэтому для построения префикс функции для позиции i достаточно проитерироваться начиная со значения префикс функции в предыдущей позиции пока продолжение суффикса новым символом не будет также и префиксом для этого надо проверить только один новый символ. Такой алгоритм выполняется за линейное время, потому что значение префикс функции каждый раз увеличивается максимум на 1 , поэтому оно не может уменьшится более чем n раз, а значит, вложенный цикл суммарно выполнится не более чем n раз. Конечный автомат KMP Следующий математический объект, необходимый в решении поставленной задачи — это конечный автомат, принимающий строки, заканчивающиеся на заданную строку s. Этот автомат используется в другой, менее известной модификации алгоритма Кнута-Морисса-Пратта. В этой версии алгоритма строится конечный автомат, который принимает все строки, которые заканчиваются на заданную строку шаблон. Затем автомату передается строка-текст. Каждый раз, когда автомат принимает переданный ему текст, найдено очередное вхождение шаблона. Именно этот автомат и поможет нам решить задачу об обезьяне за печатоной машинкой. Конечный автомат — это математический объект который проще всего представить себе как некоторую коробку у которой есть какое-то внутреннее состояние. Изначально коробка находится в начальном состоянии. В коробку можно вводить строки, по одному символу за раз. После каждого символа коробка меняет свое состояние, при чем в зависимости от текущего состояния и введенного символа. Так же некоторые состояния являются хорошими математический термин — конечные состояния. Говорят, что автомат принимает строку , если после скармливания ему этой строки символ-за-символом, автомат находится в хорошем состоянии. Для определения КА нужно определить начальное состояние, хорошие состояния и функцию перехода — для каждого состояния и символа нужно указать новое состояние, в которое автомат перейдет. Удобно рисовать автомат как полный ориентированный граф, где вершины — это стостояния, а на каждом ребре написан ровно один символ. Из каждой вершины должно быть ровно одно ребро с каждым символом. Тогда для обработки какой-то строки надо просто перейти по ребрам с символами из этой строки. Если путь закончился в конечном состоянии, то автомат такую строку принимает. Для построения этого автомата мы будем использовать уже известную нам префикс функцию. Этой информации достаточно чтоб получить такуюже после дописывания одного символа. Состояние 0 будет начальным, а состояние n — конечным. Иногда может быть неразбериха: Но, чтобы не терять нужную информацию о набранном тексте, мы всегда будем выбирать наибольшее состояние. Вот автомат для строки "ababac". Параллельные ребра объединены для наглядности. На самом деле каждому ребру соответствует только один символ. Начальное состояние — 0 , конечное — 6. Несложно убедиться, что любой путь из состояния 0 в состояние 6 , каким бы сложным он не был, обязательно кончается на строку "ababac". И наоборот, любой такой путь обязательно закончится в состоянии 6. Обратите внимание, как строятся переходы. Для расчета переходов из состояния i мы рассматриваем 2 варианта. Если же символ не совпал, то мы просто копируем переходы из состояния. Значит после перехода мы забудем часть информации о набранном тексте. Можно сделать это перед переходом. Самый минимум, что мы можем стереть, это притвориться что на самом деле сейчас состояние не i , а. Решение Теперь мы готовы решить поставленную задачу. Построим для строки s автомат KMP. Поскольку все символы набираются обезьяной случайно, нам не важны сами символы, а только ребра в графе переходов. Задачу можно переформулировать так: Логично в такой постановке ввести переменные: E 0 будет ответом к исходной задаче. Пусть Z — это множество допустимых символов алфавит. Можно составить систему уравнений:. Уравнение 1 означает, что достигнув состояния n случайное блуждание останавливается. Для любого другого состояния будет сделан какой-то переход, поэтому в уравнении 2 присутствует слагаемое 1. Второе слагаемое — это сумма по всем возможным вариантам, умноженным на вероятность этих вариантов. Все вероятности одинаковы — поэтому она вынесена за знак суммы. Но если немного посмотреть на эту систему и вспомнить, что есть префикс функция, то есть решение гораздо проще и быстрее. Вспомним построение конечного автомата. Для простоты далее вместо я буду использовать просто. Переходы из состояния k почти полностью совпадают с переходами из состояния. Отличие в переходе только по символу s[k-1]. Поэтому правые части уравнений 2 для состояний k и отличаются только одним слагаемым. В уравнении для стоит вместо в уравнении для k. Используя этот факт можно переписать уравнения Действительно, если рассмотреть состояние , то оно соответствует строке, заканчивающейся на символ s[k-1]. Значит туда есть переходы по этому символу. Если после перехода по символу s[k-1] мы получили какой-то суффикс , то до перехода это был суффикс. Поскольку это было самое правое такое состояние, то оно соответствует максимальному префиксу-суффиксу , а значит оно имеет номер. Вот мы и получили этот удивительный и полезный факт. С обеих сторон от знака равенства тут отрицательные числа логично, что чем больше k , тем меньше E k. Умножим обе части на Теперь соберем все переменные слева, домножим уравнение на Z и заменим префикс функция для одного символа всегда равна 0, так как непустых собственных префиксов у одного символа нет:. Я позволю себе повторить уравнения 1 , 4 и 5 , так как они составляют систему, которую мы теперь решим аналитически:. Вот уже решение почти готово: Подставляем это значение в 6 при — получаем:. И так можно продолжать то тех пор, пока не получим выражение для , что, кстати, и является ответом к задаче. Обозначим примененную k раз подряд функцию , тогда:. Таким образом, мы получили решение задачи за O n: Это и есть то самое решение, приведенное в начале статьи. Замечания Префикс функция и автомат КМП очень полезные инструменты для работы со строками. Если у уважаемых читателей есть интерес, то я могу разобрать решения других задач. О любых опечатках прошу сообщать в личку, спасибо. Во-первых, спасибо огромное parpalak за его замечательный сервис для подготовке статьей с формулами на Хабре https: Без него этой статьи бы не было. Очень стыдно, что забыл сразу об этом написать. Во-вторых, очень многих комментаторов путает их интуиция. В теорвере это часто случается. Да, вероятности набрать тексты одинаковой длины с первого раза одинаковы. Да, частота вхождения одинаковых по длине текстов одинакова в бесконечном случайном тексте. Все это верно, но из этих фактов не следует, что мат. Матожидание — это сумма по всем i: Фраза выделенная жирным означает что, во-первых, последние набранные символы совпадают с искомыми эта вероятность одинакова для обеих строк , и, во-вторых, среди первых i-2 символов искомая строка не встречается. Этот второй множитель и отличается для разных строк. Вероятность не найти строку — это просто количество всех текстов, в которых этой строки нет, деленное на количество всех текстов такой длины. Обратите внимание, все из-за того, что вероятности напечатать текст в первый раз за сколько-то нажатий зависят от вероятности не напечатать текст ни разу в начале и середине текста. Эта вероятность прямо пропорциональна количеству строк не содержащих заданную строку, а оно для разных шаблонов разное. Еще раз, это не я придумал, это известный факт, хоть и крайне неинтуитивный. Посмотрите, например, на эту статью ищите там задачу про Алису и Боба — 4 абзац: Ну вот приводили пример с монетками. Тогда, только если "aaa" в потоке встречается не на первом месте, то перед ним будет буква "b", а значит "baa" встречается почти всегда раньше, чем "aaa" в любом потоке. Так как мы считаем до первого вхождения — то мат. Еще раз, ваша ошибка в том, что вы заменяете мат. Это верно только для Пуассоновских потоков. Поток в нашей задаче таким не является. Потому что для строки "aaa" событие может произойти 2 раза подряд, а для строки "abc" — не может никогда. По мне это как сравнивать булево и десятичное сложения то есть одно из них как бы становится "умножением". Маленький алфавит — это для наглядности. Но это условие нисколько не влияет на то, что строки "aaa" и "baa" точно так же равновероятны. Но в этом примере очевидно, что "baa" встречается раньше. Точно так же, но это менее очевидно "abc" для всего алфавита всречается раньше "aaa". Интуиция тут такая — когда набрана первая буква "a" из "abc" можно или набрать вторую букву, или снова набрать "a" или набрать какой-то нерелевантный мусор. Для строки "aaa" можно только набрать вторую букву или какой-то мусор. Варианта остаться с одной набранной буквой — нет. Тут любая ошибка делает так, что на конце текущей последовательности вообще нет правильно набранного текста. Для "abc" есть вариант сделать не серьезную ошибку, которого для "aaa" нет. Вот вам — поэкспериментируйте. Для "aaa" ответ всегда больше чем для "abc". Остальные вопросы вы и комментаторы ниже, судя по смыслу решили проигнорировать… Ну да ладно, я к сожалению вышку на уровне профессора не знаю, чтобы вам по полочкам разложить, типа нутром понимаю, но как собак — ни скажу. Простите, дискуссия вышла из под контроля. Если вы продублируете вопросы, я на них с удовольствием отвечу. Да, это противоречит интуиции, но все приведенные тут в комментариях симуляции показывают одно и то же. Для больших алфавитов нет такого простого и очевидного примера, к сожалению. Но даже для всех 26 символов получается вот что для строк "aaa" и "baa": Обратного эффекта нет, поэтому появляется перекос. Хотя размер алфавита в общем-то вы совершенно правильно связали с эффектом названым вами "перекосом". Что например для строк "aaa" и "baz"? Что здесь где перед чем чаще будет встречаться? Вот выше в ветке вы сами предложили не путать теплое с мягким я про ваше "неверно посчитается как 2 вхождения строки", потому как интересно только первое вхождение , здесь же, думается мне, вы делаете это сами я про теплое с мягким. Потому как "первое вхождение на одинаковом расстоянии" у них действительно равновероятно находится на том же самом месте. У вас проблема в чем: Еще раз, это не про сабж конкретно, так как сама статья имхо замечательная, и насколько осилил мат-часть, даже наверно правильно все доказано по теме мат-ожидания уже лет двадцать ничего не делал, да и мозг плавится после тяжелого трудового дня. Я вам только про "неправильность" что ли вашего примера и некоторые ваши замечания и выкладки про вероятности и смешивания последней с мат-ожиданием. И ни за что другое: Автор доказывает совершенно корректно первое утверждение. Второе же, безусловно, является неверным. Если вы делаете ставку на то, какая строка появится первой, то ваши шансы строго 50 на Ждать её в среднем придётся меньше. Чтобы прочувствовать разницу между этими утверждениями, вот вам ещё пара условных примеров из жизни. Представьте остановку, на которую приходят по определённому расписанию маршрутка и автобус. Ситуация 1 И автобус, и маршрутка ходят с одинаковыми интервалами, но маршрутка едет всегда непосредственно перед автобусом. Тогда среднее время ожидания автобуса и среднее время ожидания маршрутки равны, но когда бы вы ни пришли на остановку, первой появится маршрутка. Ситуация 2 Пусть теперь автобус ходит вдвое реже, но появляется непосредственно перед каждой второй маршруткой. Шансы увидеть первым автобус или маршрутку уравнялись, но среднее время ожидания автобуса вдвое больше. В чем здесь ошибка? После того как автомат построен случайное блуждание никак не зависит от назначенных ребрам символов. Или вы тоже сомневаетесь в правдивости первого утверждения в статье? Его доказательство хорошо расписано в Википедии https: Проблема в том, что вы считаете количество нажатий до первой встречи строки str1 при том что строка str2 ни разу не встретилась и наоборот для второй строки. Это совсем другие величины. Можно этот пример довести до абсурда и считать сразу для всех четырех возможных строчек. Тогда цикл while у вас всегда завершится на второй итерации, что, согласитесь, странно. И вы подсчитаете для каждой строки сумму из двоек. Более того у вас при этом ответ не сойдется с текущей вашей программой. Надо или разделить на 2 параллельных цикла отдельно для str1 и str2, или гнать цикл while пока не встретятся ОБЕ строки, запоминая где первый раз каждая из них попалась. Проблема в том, что вы проводите другой эксперимент. Вы выгоняете обезьян из-за машинки когда они напечатали или одно или другое. В исходной же задаче обезьяна печатает пока не наберет только одну заданную строку. Этот эксперимент для двух разных строк дает разные результаты. Да, вероятности встретить сначала "чч" или "чк" одинаковы. Я не говорил нигде про вероятность получить сначала одно или другое. Я считал среднее количество нажатий. Кстати, из того, что матожидание одной величины больше матожидания второй величины никак не следует, что первая окажется больше второй в более чем половине случаев. Измените ваш код для работы только с ОДНОЙ строкой. Мы же считаем как тяжело получить одну строку, именно ту, которую выбрали? Потом запустите этот код для разных строк "чч" и "чк" и вы получите разные результаты. Вот вы никак не понимаете разницу между вопросами: На первый взгляд кажется, что если в среднем требуется меньше символов, то и встречаться первый раз строка должна раньше других. Но это не так. Да из тысяч обезьян примерно половина напечатает сначала "чч" а примерно половина "чк" если выгонять их когда случится одно из двух. Но если первые 50 тысяч заставить печатать пока они не наберут "чч", а вторые 50 тысяч — пока они не наберут "чк", то первые обезьяны напечатают более длинные тексты. Я считаю матожидание количества символов для одной, заранее заданной строки. А вы считает вероятность того, что одна строка будет раньше другой или частоту вхождения строки в бесконечный поток. И то и другое не является матожиданием количества символов. Эта программа считает не то — количество вхождений. Вот программа, которая считает то, про что в задаче и спрашивается — https: Только полноправные пользователи могут оставлять комментарии. TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим. Хабрахабр Публикации Пользователи Хабы Компании Песочница. Код решения Чтобы понять, почему это работает и что это за функция Pi нужно прочитать всю статью: Префиксы и суффиксы Префикс — это просто начало строки, если отбросить сколько-то символов с конца. Что такое конечный автомат Конечный автомат — это математический объект который проще всего представить себе как некоторую коробку у которой есть какое-то внутреннее состояние. Программирование 2,9k авторов , 6,6k публикаций. Информационная безопасность 2,4k авторов , 6,4k публикаций. Анализ и проектирование систем авторов , публикаций. Алгоритмы 1,3k авторов , 2,4k публикаций. Python авторов , 1,8k публикаций. Машинное обучение авторов , публикаций. JavaScript 1,9k авторов , 4,1k публикаций. Visual Studio авторов , публикаций. JS автора , публикации. Разработка под iOS авторов , 1,9k публикаций. Сортировка пузырьком в коде Qualcomm 17,8k Добавить в закладки Илья Николаевский wataru карма. Приведен алгоритм и формула с выводом. Применять по своему усмотрению для любого конкретного текста. Да, наверно, это неточность в статье. Если не задавать с какой скоростью обезьяна печатает, вопрос о времени в секундах не имеет смысла. Те обезъяны что умеют печатать, обычно печатают со скоростью символов в секунду, рекорд около символов. Так что можете произвести оценку. Я не уверен, что механика печатной машинки справится с такими скоростями. Прошу прощения за придирку, но Ваша программа действительно не отвечает на вопрос о времеени, которое потребуется обезьяне, поскольку Вы подсчитываете среднее количество символов, и необходимо еще задать количество вводимых символов в единицу времени для преобразования, а так статья интересная. Чего-то автор перемудрил, мне кажется. Да, вероятность встретить в бесконечном тексте одинакова. Но нас-то интересует время до первого набора заданной строки. Я, видимо, не понимаю, почему мат-ожидания встретить одну или другую подстроку с одинаковыми длинами которые появляются в потоке с одинаковыми вероятностями будут разными. Именно из за этого перекоса в вероятностях сложнее закончить собирать первую строку. Всё ещё не понимаю. Или я вообще не правильно понял условия? Похоже что вы не так поняли условие. В задаче просится мат. Вы там считаете среднее количество вхождений и оно, действительно одинаково. Если бы обезьяна продолжала печатать после корректного набора и мы потом считали сколько раз она напечатала нужный нам текст, то было бы то, что вы сейчас считаете. Мы же после корректного набора обезьяну выгоняем. Вычисление мат-ожидания до первой встречи подстрок я заменяю на вычисление вероятностей этих подстрок. Разве это не однозначно определяемые друг через друга величины? Я понял в чем проблема — вам кажется, что матожидание до первой встречи обратно пропорционально частоте встречи в бесконечной случайной строке. Это похоже на правду для точек на прямой. Средняя длина отрезка между двумя точками обратно пропорциональна их частоте. Но со строками это не так. При наложении двух строк связь матожидания расстояния между ними и частоты нарушается. Вы сами придумали решение и условия? Или это уже кто-то придумал до вас? Погуглил, везде эта задача решается через длину искомой строки, содержимое повторяемость букв в ней не имеет значения. Позже попробую перечитать ещё раз, с учётом того, что вы там что-то исправили в статье. Я, признаюсь, не вникал в ваши формулы и код. Задача была на какой-то олимпиаде лет 10 назад. Тогда я ее именно таким образом и решил. И это было правильное решение. Единственное изменение в статье — это замечание в самом начале о том. В википедии нет ничего про время набора. А вероятность там указана набрать текст правильно с первого раза. Тут действительно нет никакой разницы, как устроена строка. Время набора текста зависит от мат-ожидания совпадения потока с текстом, которое зависит от вероятности набрать текст. Строго говоря, для набора текста вероятности гораздо сложнее… в частности, обезьяна вероятнее будет лупить некоторое время в одну область клавиатуры, а не распределять нажатия равномерно по всей её поверхности. Так что задачу надо про роботов формулировать, а не про обезьян, чтобы удобнее считать было. Вам должны помочь понять комментарии из этой ветки. Или лучше сразу этот комментарий прочитать. Мне пока не ясны условия задачи, приводящие к её такому усложнению. А то, что префиксные штуки круты и полезны — не сомневаюсь. И то, что в указанной вами задаче с Алисой и Бобом вероятности не равные — я тоже понимаю почему. Но вот в постановке задачи про обезьян как я её всегда знал такие ухищрения не были нужны. Перечитаю позже статью внимательнее. Вы просто замените бесконечный ряд монет на бесконечный ряд символов. И эти величины для любых подстрок одинаковой длины равны. Всё ещё без перечитывания статьи отвечаю, возможно, у автора введены дополнительные ограничения, меняющие решение, которые я не уловил. В классических условиях мы не считаем количество подстрок, мы ждём самого первого выпадения искомой подстроки в бесконечном ряду символов, а дальше хоть трава не расти. Это называется математическим ожиданием появления подстроки, однозначно выводимым из вероятности появления этой подстроки, которая, в свою очередь, однозначно выводится из количества встреченных подстрок и длины потока символов. При этом длина потока символов устремлена в бесконечность. Но между этими вхождениями -2 минус два символа! Или, в другой интерпретации, вам надо набрать всего один дополнительный символ, чтобы получить из первого вхождения второе. Эти лишние невозможные отрезки нельзя учитывать. Потому что обезьяна никогда не сможет напечатать строку из трех символов всего одним нажатием. Если такие пары исключить, то в бесконечной строке получается меньше отрезков которые можно учитывать между двумя подряд идущими включениями подстроки, а значит матожидание будет больше. Я считаю вероятность, а она считается именно через количество вхождений с учётом длины потока, устремлённой в бесконечность , даже если строки будут накладываться друг на друга. Допускаю, что ошибаюсь, не понимая дополнительных условий в вашей задаче и опираясь на решение в Википедии. Я всё ещё не перечитал вашу статью, так что не тратьте на меня время пока. Всё, теперь понял, спасибо за терпение. Действительно, теперь получается похоже на задачу про Алису и Боба. При этом делая две ошибки даже три на самом деле: Мне кажется, что не равна нулю, а стремится к нему, но лидерство у последовательности из неповторяющихся символов. Вы правы, стоило более четко формулировать задачу. Я добавил замечание про количество нажатий в статью, спасибо. Разница будет еще заметнее, если ограничится алфавитом только из трех букв 39 против Можно и упростить, но хотелось увидеть сами строчки из буковок: Ждать придется подольше, но числа действительно где-то рядом с обозначенными: Вероятность одинаковая и соответственно нужно одинаковое количество нажатий. Сотни лет это не работает, а тут у автора заработало? Ну пусть сходит поиграет, я посмотрю как он без штанов вернется! Про время автор вообще ничего не пишет! Тысячи людей так думали и проигрывали в казино огромные деньги. А ТУТ автор взял и изобрел денежную машину! Это все равно что изобрести вечный двигатель. ХИТРЫХ формул и механизмов вечных двигателей тысячи, только не один так и не заработал! В казино ваш выйгрыш в текущем раунде никак не зависит от того выйграли ли вы прошлый раунд, и было ли там красное. А тут пространство событий совершенно другое. Все при случайном наборе и в рулетке совершенно одинаковое, так как и тут и там, события независимы друг от друга и алфавит можно оставить всего из двух букв К и Ч. И в качестве упражнения на закрепление материала: Да почти что никогда не получится это. Причем все тома буква в букву. Я на эту статью посмотрел немного с другой стороны: Если же она бесконечна, то этот комментарий я пишу не один. Хотя, я не верю, что вселенная бесконечна: Такие дела, не напишет, короче. Имеется ввиду, наверное, что реальные мартышки не могут выступать случайными оракулами даже с ненормальным распределением. На импровизированной полке расположились в ряд шесть стопок отпечатанного текста, каждая около фута толщиной. Бэйнбридж не без усилия поднял одну из стопок и положил её перед профессором Мэллардом. Он прочитал первую страницу рукописи. Потом лихорадочно перелистал всю рукопись до конца. Как только Билл кончил, он сразу начал печатать социологические труды итальянца Вильфредо Парето. Если он и дальше будет работать в таком темпе, к концу месяца закончит и это. Проза Джона Донна, кое-что из Анатоля Франса, Копан Дойль, Гален, избранные пьесы Сомерсета Моэма, Марсель Пруст, мемуары покойной Марри Румынской и еще монография какого-то доктора Вилея о болотных травах Мэна и Массачусетса. Я могу подвести итог, Мэллард: Что-то тут не так. Даже если взять русский алфавит, то уже будет 33 буквы, а если тот, что был до революции, то Ну и вставки на французском языке ещё нужно добавить, а это ещё 26 букв. Плюс знаки препинания и прочее. Что не так с такой программой? С автором не совпадает!!! Автор говорит что легче набрать ЧК чем ЧЧ. Программа говорит что одинаково. Если посадить сто тысячь обезьян то примерно половина из них сначала наберет ЧК, а вторая половина ЧЧ. При этом они наберут примерно одинаковое количество букв. В чем проблема в моей программе? Я не выгоняю их из-за машинки. Но я действительно провожу другой эксперимент. Если обезьяна уже набрала ЧЧ, я не считаю сколько ей еще надо нажать клавиш чтобы в той же строке набрать ЧК. А вы как раз ЭТО считаете. И тогда действительно получается ваше мат ожидание. Где ЧК набрать быстрее, но в жизни вы один и у вас любая комбинация потребует примерно одного и того же количества СЛУЧАЙНЫХ нажатий. А именно это и надо считать. Я их не выгоняю, я просто не рассматриваю что они там дальше написали и есть ли там другая строка тоже и как она далеко. То же самое, что и выгнать. Вы отбрасываете что бы она дальше ни напечатала. Да из тысяч обезьян Моя литературная память не может промолчать Это мой общий ключ. Теперь придется переупаковывать все базы данных. Тёмный Дайвер подносит трубку к Чингизу. Тот почему-то смотрит на меня почти с таким же негодованием, как и на Тёмного Дайвера. Но голос сохраняет спокойным: Теперь набирай ключ… он простой… ламерский… Вот оно в чем дело! В конце должна стоять точка. Набирай… и повторяй по буквам. Чего он тянет… Чингиз выдыхает и ледяным голосом произносит: Спасибо автору за интересную головоломку! Как раз ваша программа постоянно показывает примерно равные значения! Я ее переделал для алфавита из двух символов. Это было бы сразу заметно. Тут разница в подходах подсчета. А мы набираем всего ОДНУ строку и потом смотрим что встретилось раньше. И тут мат ожидание будет равным. У меня ранее возникал вопрос, только в другой интерпретации, а именно: Ведь при написании диплома, мало кто пишет на какую-нибудь новую тему, или исследует предметную область, ранее неизвестную человеку. Большинство использует книги, статьи интернета, лекции преподавателей многие из этих лекции, были лекциями предыдущих преподавателей. И как скоро возникнет ситуация, что уже все предметные области расписаны на столько, что уже просто нечего будет написать. Зачем писать на тему по которой уже нечего написать? Это уже НЕ научная работа получается, вас же просили толочь воду в ступе! Дипломная работа не обязана вносить что то новое, а вот кандидатская и докторская обязана. Это же пример обыкновенного брутфорса. Притом с такой энтропией, что обезьяне проще быстренько на фоне затрачиваемого времени на брутфорс эволюционировать до Льва Толстого всего то пару десятков миллионов лет , чем перебирать все возможные комбинации. Даже если обезьяна будет сверхактивно стучать по дымящейся клавиатуре, это займёт гугол миллиардов лет — минимум. Метки лучше разделять запятой. Сейчас Вчера Неделя Вы ни черта не понимаете в цветах 28,1k Как писать на Spring в 11,5k Вы ни черта не понимаете в цветах 28,1k Интересные публикации Хабрахабр Geektimes. Британские спутниковые снимки 2: Как все было на самом деле. Мониторинг работы производства веб-студии. Необходимость регулирования интернета вещей. Movidius Neural Compute Stick — искуственный разум на флешке GT. Дизайн для пальцев, касаний и людей. Наука над земным шаром, часть 2 GT. Разделы Публикации Хабы Компании Пользователи Песочница. Информация О сайте Правила Помощь Соглашение Конфиденциальность. Услуги Реклама Тарифы Контент Семинары.


Больно ли удалять зуб с уколом
Орсотен инструкция по применению для похудения
Стихи про подаренные цветы
Логические и занимательные задачи (300 задач)
План работы родительского комитета 2016 2017
Можно ли при ларингите ставить горчичники
Как класть плитку если ванна установлена видео
Самая умная обезьяна
Высказывания великих людей об истории
История короля лир
Studepedia.org - это Лекции, Методички, и много других полезных для учебы материалов
Что делать если тебя унижают в классе
Историй как не платить кредит
Как правильно сажать картошку под солому
Интеллект обезьян
Стихи про черную розу
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment