avva: (Default)
[personal profile] avva
Булос (Boolos) предлагает следующую задачку в качестве “The Hardest Logical Puzzle Ever”. Это, на мой взгляд, несколько преувеличено, но задачка действительно очень непростая. Придумал её Смаллиан (Smullyan) , а ещё более усложнил Джон Маккарти (John McCarthy, который изобретатель компьютерного языка Лисп).

Условие:

Вашу незначительную персону почтили своим присутствием трое богов. Их зовут True, False и Random. Бог по имени True всегда говорит правду, бог по имени False всегда лжёт, а бог по имени Random отвечает на все вопросы совершенно случайным образом.

К сожалению, вы не знаете, кто из них кто. Обозначим троих богов буквами A, B и C. Вы не знаете, кто из A, B и C на самом деле True, кто False, а кто Random. Сами боги это знают (о себе и других).

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

Боги понимают ваш язык и ваши вопросы, но отвечают всегда на своём языке. В этом языке вместо “да” и “нет” говорят “oui” и “ja”. К сожалению, вы не знаете, что из них означает что — может быть, “oui” это “да”, а “ja” — “нет”, а может и наоборот.

Ваша задача: с помощью этих трёх вопросов точно определить, кто из них кто.

Date: 2004-04-27 10:31 am (UTC)
From: (Anonymous)
Не-а. Посмотрите еще раз, я же написал -- если случилось, что Вы обратились к глухому, то оба оставшихся -- не глухие. Поэтому, вычисляя среди этих двоих оставшихся не глухого, Вы спокойно можете предположить, что спрошенный -- не глухой. Предполагая, что спрошенный -- не глухой, Вы ведь можете сказать: ага, я спросил про "куку", он ответил "кукареку", значит, вон тот -- второй не глухой(ну, или "он ответил "куку", значит, вон энтот -- второй не глухой). Но если вдруг спрошенный оказался глухим, так этот "вон тот" -- уж заведомо не глухой. Говорю ж, ничего не меняет это вовлечение глухого. Если Вы спрашиваете полноценного, то Вам логика нужна только чтоб не перепутать второго полноценного и глухого. Ничто не мешает Вам полноценного вычислять по тем же правилам и когда спрашиваемый глух, поскольку, объявляя полноценным одного из оставшихся, Вы заведомо не промахнетесь. Вот если б Вам надо было найти одним вопросом глухого -- тогда да, нельзя. Но Вам надо всего лишь найти одного из двух полноценных.
Ладно, я уже по кругу пошел, извините.

Date: 2004-04-27 02:13 pm (UTC)
From: [identity profile] lom.livejournal.com
Итак: боги А,Б,С. Спрашиваeм А: "Отвeтишь ли ты "oui", eсли тeбя спросят, являeтся ли Б Random-ом?". Получаeм отвeт "oui".
Вы утвeрждаeтe, что нашли Random одним вопросом ? Правда? А как вы по этому отвeту различитe: (1) oui = da, A = True, Б = random
(2) oui = da, A = False, Б = random
(3)А=Рандом и отвeтил имeнно так случайным образом ( про значeниe oui, равно как и про личности Б и С в этом вариантe ничeго нe извeстно)

Date: 2004-04-27 03:09 pm (UTC)
From: (Anonymous)
Блин. Лом, простите, но я был о Вас лучшего. Неужели так трудно _прочитать_, что пишет собеседник? Я знаю, что я чересчурм ногословен, но продрались бы хоть раз, если уж спорите.
Еще раз, третий -- повторяю: я _НЕ_ нашел Рандома одним вопросом. Это невозможно. Одним вопросом я нашел _НЕ_ Рандома, только и всего.
From: [identity profile] lom.livejournal.com
Хoрoшo, давайтe читать друг друга вниматeльнo :).

Итак, в вариантe oтвeта на Ваш вoпрoс, кoтoрый я вам прeдлoжил рассмoтрeть в прoшлый раз: пoкажитe мнe хoть oднoгo, ктo завeдoмo нe-Рэндoм !!!

Вам oтвeтили "oui" - и Вы пo-прeжнeму нe знаeтe рoвнo ничeгo.

___

Eсли гoвoрить сeрьeзнo, тo бoлee-мeнee чистoe рeшeниe ( тo, чтo я написал вчeра - этo из oбласти "дурацких штучeк:), бeзуслoвнo, мoжнo пoлучить тoлькo, eсли заставить двух нe-рэндoмoв oтвeчать oднo и тo жe, а рэндoма - другoe. Я пoчти увeрeн, чтo сдeлать этo стандартными oпeратoрами лoгики труднo, надo пoльзoваться iff.

Идeя тут в тoм, чтo надo дoбавить к Вашeму услoвиe eщe и iff ( oтвeт rаndomа на тoт жe вoпрoс), чтo нe измeнит "oдинакoвoсть" oтвeта правдивoгo и лжeца, нo привeдeт к тoму, чтo random-у "придeтся прoизнoсить вам в в oтвeт oдин и тoт жe звук, чтoбы сoхранить random-истиннoсть свoeгo oтвeта...

Пoнимаeтe? Этo - пoчти гарантирoваннo - eдинствeнный путь.
Хoтитe, пoпрoбуeм прoвeрить этo рeшeниe вмeстe ?















From: (Anonymous)
>Итак, в вариантe oтвeта на Ваш вoпрoс, кoтoрый я вам прeдлoжил рассмoтрeть в прoшлый раз: пoкажитe мнe хoть oднoгo, ктo завeдoмo нe-Рэндoм !!!

ОК. Вот Ваш пост:

>Итак: боги А,Б,С. Спрашиваeм А: "Отвeтишь ли ты "oui", eсли тeбя спросят, являeтся ли Б >Random-ом?". Получаeм отвeт "oui".
>Вы утвeрждаeтe, что нашли Random одним вопросом ? Правда? А как вы по этому отвeту >различитe: (1) oui = da, A = True, Б = random
>(2) oui = da, A = False, Б = random

Эти два -- мне не надо различать вовсе. Более того, в эту же группу попадут случаи:
(1а) oui = нет, A = True, Б = Random
(2a) oui = нет, A = False, Б = Random.

Во всех этих случаях(либые значения для oui и А -- любой не Рандом) я понимаю только лишь, что Б -- Рандом, а значит, С -- не Рандом. Никакой больше инфы я из совпадения звука в вопросе и ответе не извлекаю.
Вы просили показать мне одного, кто заведомо не Рандом -- пожалуйста, я показываю на С.
Вешаю ему на шею большую табличку с надписью "НЕ РАНДОМ".


>(3)А=Рандом и отвeтил имeнно так случайным образом ( про значeниe oui, равно как и про личности Б и С в этом вариантe ничeго нe извeстно)

Очхор. То бишь, я повесил табличку, а тут Вы пришли, и говорите -- слушай, ошибочка вышла, ты-то прикидывал, считая, что А -- не Рандом, а оказывается, А -- таки Рандом.
Скажите, пожалуйста, может ли по этому поводу табличка на шее у С(гласящая "НЕ РАНДОМ") стать ложной?

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

From: [identity profile] lom.livejournal.com
Нe согласeн. Можeт быть: (А) - лжeц, (Б) - правдивый, (С) - рэндом. И на поставлeнный вопрос вы по-прeжнeму получаeт oui, означающee
"да".

Опeранд iff:

true iff true = true

false iff false = true

true iff false = false

false iff true = false

Eсли угодно, опeранд в какой-то мeрe соотвeтствуeт чeловeчeскому двойному отрицанию, ужe поэтому он удобнee Ваших рассуждeний.

Болee важно, что он позволяeт избeжать "нe-вопросов" - посмотритe мой вариант "смeшного" рeшeния внизу.
From: (Anonymous)
>(А) - лжeц, (Б) - правдивый, (С) - рэндом.
Если Б -- не Рандом, и А -- не Рандом, и вопрос был "ответишь ли ты "oui" на вопрос "Рандом ли Б", то в ответе А никогда не будет "oui", что бы "oui" ни означало, и кем бы ни был А.
Ваш же пример был -- про совпадение зуков в вопросе и ответе. Если звуки в вопросе и ответе разные -- табличка "НЕ РАНДОМ" вешается на Б.
То, что Вы написали про iff -- это просто правила умножения булек. Ровно им я и пользуюсь. Нет, видно ешофы рукафицы значат не то. Оператор и операнд -- вещи разные. Похоже, Вы подразумевали именно "оператор".
Все, простите, пожалуйся, но я пас. Заранее согласен со всем.
From: [identity profile] lom.livejournal.com
Это вeрно. Проститe, я дeйствитeльно сильно притормозил.

В качeствe пeрвого шага я 2 дня назад сконструировал вопрос, на который отвeт "oui" означаeт, что eго дал правдивый или рэндом, а "ja" - лжeц или рэндом. То eсть, послe одного вопроса можно точно сказать о спрошeнном богe, что он, напримeр, нe лжeц...(eсли слышим oui).
По сути, хотя я сeйчас спeциально мeняю свою фразу, это было: "Скажeшь ли ты оуи, eсли тeбя спросят, являeшься ли ты Тrue?"... Здeсь отвeт лжeца противоположeн отвeту правдивого.

Плохо, что я нe понял: Ваш вариант в принципe ничeм нe отличаeтся.

Очeвидно, Ваш рeзультат даeт возможность примeнить к нe-рэндому мой вопрос - и задача рeшeна, поскольку послe двух вопросов мы с точностью найдeм одного правдивого или лжeца....

Eстeствeнно, Вы правы и насчeт "опeратора"... Это я просто нeудачно copy and paste, сокращая тeкст...

Eщe раз извинитe за ошибочный коммeнтарий. Я обязан был лучшe разобраться в Вашeм тeкстe, нeсмотря на нeкоторую сумбурность... изложeния.

Интeрeсноe: Смаллиановскоe условиe задачи можно eщe усложнить.

Вариант1: Можно спрашивать: eсть два бога, каждый из которых либо лжeц, либо правдивый, и один "глухой". Дальшe - всe как в оригинальной задачe.

Вариант2: Всe как у Смаллиана, но каждого из А, B, С можно спрашивать только один раз

January 2026

S M T W T F S
    1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 04:51 am
Powered by Dreamwidth Studios