C, PHP, VB, .NET

Дневникът на Филип Петров


* Вариант на най-трудната задача

Публикувано на 04 април 2009 в раздел Математика.

Днес докато пътувах в рейса от Самоков до София се сетих за логическите задачи в блога и по-точно "най-трудната логическа игра на всички времена". Реших да направя направя по-лесни варианти на задачата. Така човек може да стигне постепенно до решението на цялата задача.

Първата задача, която измислих е следната:
Попаднали сте в най-затънтеното село на България. Хората говорят на много странен диалект, който вие въобще не разбирате, но се оказва, че те вас ви разбират прекрасно. Оказва се, че дори не може да разберете коя дума е "да" и коя "не".

Какъв въпрос бихте задали на случаен човек така, че когато ви отговори ще разберете коя дума използват за "да" и коя за "не"? Имайте предвид, че човекът може да каже истината, може да ви излъже, но може и да лъже "от време на време" (т.е. някои дни лъже, някои не).
Е, тя вече е разгадана отдавна и не предизвиква голям интерес. Използвайте я за загрявка.

След това обаче ми хрумна една значително по-интересна, която е с малко нестандартно за логическите задачи условие:
Пред вас има трима човека. Знаете, че един от тях винаги казва истината, втория винаги лъже и третия лъже или казва истината според настроението си в конкретния ден. За нещастие не знаете кой-кой е.

Имате право да зададете два въпроса на един от хората. Измислете такива въпроси, че да се получи следният ефект:
1. Човекът, който казва истина да отговори и двата пъти с "да";
2. Лъжецът да отговори и двата пъти с "не";
3. Човекът, който понякога лъже, а понякога не - да отговори един път с "да" и един път с "не".
Може би малко избягах от "най-трудната задача"? Честно ще си призная, че отговор на тази задача все още не съм измислил. Надявам се вие да ми помогнете...

 



17 коментара


  1. На първата бих питал от какъв пол е. Тоест ако видя, че е мъж ще питам "Мъж ли си". Едва ли ще ме излъже за такова нещо. Прав ли съм?

    За втората не разбрах условието как мога да задам само на един от тримата два въпроса а и тримата да отговорят? да не искаш да кажеш, че на всеки трябва да задам по 2 въпроса и да ми отговорят по посочения начин?

  2. отговор 1: Разбирате ли какво говоря?
    отговор 2: 1 въпрос: Пред мен има 3 човека:
    човекът, който казва истината: да
    човекът, който винаги лъже: не
    човекът, който ту говори лъжа, ту истина: да
    2 въпрос: Един от вас ме излъга, нали?
    човекът, който казва истината: да
    човекът, който винаги лъже: не
    човекът, който ту говори лъжа, ту истина: не

  3. Първи въпрос: На 3-тия му се случва да лъже, нали?
    1: Да.
    2: Не.
    3: Да(ако днес не лъже)/Не(ако днес лъже)

    Втори въпрос: Ти не си 3-тия, нали?
    1: Да.
    2: Не.
    3: Не(ако днес не лъже)/Да(ако днес лъже)

  4. хахаха това ако е най-трудната задача, не знам тази каква ще я определиш:

    "100 prisoners are imprisoned in solitary cells. Each cell is windowless and soundproof. There's a central living room with one light bulb; the bulb is initially off. No prisoner can see the light bulb from his or her own cell. Each day, the warden picks a prisoner equally at random, and that prisoner visits the central living room; at the end of the day the prisoner is returned to his cell. While in the living room, the prisoner can toggle the bulb if he or she wishes. Also, the prisoner has the option of asserting the claim that all 100 prisoners have been to the living room. If this assertion is false (that is, some prisoners still haven't been to the living room), all 100 prisoners will be shot for their stupidity. However, if it is indeed true, all prisoners are set free and inducted into MENSA, since the world can always use more smart people. Thus, the assertion should only be made if the prisoner is 100% certain of its validity.

    Before this whole procedure begins, the prisoners are allowed to get together in the courtyard to discuss a plan. What is the optimal plan they can agree on, so that eventually, someone will make a correct assertion? "

    Out-of-the-box решения не се приемат (тоест за решения от типа някой счупил крушката, някой писал по стената и т.н. и дума не може да става, само добре обосновани математически решения важат). Досега най-краткия срок намерен е към 3500 дни, но няма успели да докажат че техният алгоритъм е оптимален. Успех :)

  5. може би първият въпрос трябва да е- живи ли сте,а вторият от земята ли сте( в смисъл от планетата земя) тъпи въпроси, но ако са земляни и не са зомбита би трябвало да се получи- казващият истина ще потвърди, а лъжецът ще отрече, третият не е от особена важност, след като разбереш, кой е този който не лъже.

  6. Първата задача както казах е тривиална и за нея вече съм дал решение. С един въпрос без логически оператор за връзка няма как да стане - не можеш с две възможности "да" и "не" да отделиш еднозначно три елемента, без да използваш някакви измислени трикове (както в задачата за трите крушки, която я има в този блог). Затова въпроса трябва да има логически оператор. В случая давам пример с "ако-то". Въпроса ми ще бъде:

    "Ако те бях попитал дали 1+1=2, то щеше ли да кажеш, че е вярно?”

    Ако попитам човек, който казва истината, то той определено ще каже "да".

    Ако попитам човек, който лъже, то той също ще каже "да" (на въпроса "1+1 равно ли е на 2", той би отговорил "не", но ние го питаме дали ще отговори с "да", т.е. той ще потвърди и така ще излъже).

    За човек, който ту казва истината, ту лъже - няма значение в конкретния ден дали говори истина или лъже. Вече показах, че винаги се отговаря с "да".

    Ето един начин да си преведем думата "да" и от тук нататък знаем коя е "да" и коя "не".

    Колкото до втората задача - както казах все още не съм я мислил.

    Отговорът на "mar" не е верен, защото човекът, който ту говори истина, ту лъжа прекалено с лека ръка е фиксиран да каже "да" и "не". Просто не е вярно.

    Отговорът на "Кирил" - отговорът е верен, ако предварително знаеш кой - кой е. За нещастие ти не би следвало да знаеш.

  7. Колкото до "Nqkoi" задачата ти е хубава, знам отговора отдавна, но си признавам, че не я реших сам (бях близко обаче, защото се бях сетил за това, че трябва да си изберат водач, който да брои).

    Какво ще кажа за нея ли? Ами определено е много по-лесна от "най-трудната логическа задача" и решението на Раберн & Раберн.

    Малко е глупаво да се отнасяш с насмешка, без да покажеш, че решението е елементарно (ако въобще сам имаш решение).

  8. Решението въобще не е лесно, и включва много нива от броячи както и няколко вида знаци, които се предават от ниво на ниво...та както казах засега най-добрият алгоритъм който съществува показва към 3500 дни, но все още никой не е доказал, че той е оптималният. Така че много ме съмнява която и да е от тези задачки да е по-трудна от тази...

  9. тъкмо прочетох статията на Раберн&Раберн с решенията на всички модификации на "най-трудната" задача и мога да кажа, че във всичките си форми тя е поне 100 пъти по-лесна от тази със 100те затворника...

  10. Нарича се "най-трудната логическа задача" с акцент на "логическа". Тоест използва се математическия апарат на логиката - конюнкция, дизюнкция и т.н.

  11. Заставам 100% зад думите на Светльо Антонов. Естествено, че не е реално "най-трудната" - просто такова име са и дали при създаването й.

    Колкото до задачата за затворниците - това, за 3500те дни не е вярно. Теоритично е възможно един от затворниците никога да не бъде избран и никога да не влезе в стаята с крушката, т.е. никога да не се стигне до решение. Затова не може да се каже кога ще дойде решението.

    Най-лесното решение до колкото си спомням е само с един затворник - да наречем лидер на групата. Наговарят се за следния трик:
    1. Ако лидера е избран и лампата е светната - угасва я и увеличава брояча си с едно.
    2. Ако е някой друг затворник, то независимо колко пъти е викан в килията - само първият път, когато види лампата загасена трябва да я светне. Останалите пъти не пипа лампата въобще! Ако лампата му свети не прави нищо...

  12. @филип да прав си, че има вероятност някой да не бъде избран, но става дума за средна стойност, която алгоритъмът дава, така че най-добрият алгоритъм засега дава средна стойност към 3500 дни. Решението което ти си предложил с един лидер дава към 8000 дни средно.

  13. Все пак дори една монета даже и да не е нагласена, имат верояност да дава само ези, но ние очакваме средно 50/50 ези и тура нали...и тук е същото.

  14. Бих казал, че все пак си струва да се обсъди и задачата със затворниците, но може би в отделна публикация. Това най-просто решение е крайно неефективно в средния случай.

  15. Да, отклоняването от темата е сериозно. Никой ли не помисли върху моето "творение"? С вече известни задачи е лесно - Google и готово :)

  16. Най-затънтеното село: значи това е Учиндол или Сирищник. Питам нещо и ако не разбера, млатя ги. След здрав тупаник и малко пари, ще проговорят на достатъчно разбираем български и ще ми кажат каквото ме интересува, а за още 5 лева ще ми измият и джипа.

  17. Аз пък ако им покажа деколте, ще дойдат край мене, а ако им кажа, че ще пием кафе, ще ми кажат всичко което си пожелая, дори и къде е родната колиба с кенеф в двора на Слави Триф или на Гоце Първ съответно.

Добави коментар

Адресът на електронната поща няма да се публикува


*