La finalul cărții „Harry Potter și piatra filozofală” există o enigmă interesantă. Harry și Hermione intră într-o cameră, după care intrările sunt blocate de un foc magic, iar ei vor putea ieși doar rezolvând următoarea enigmă:
În fața ta se află pericolul, iar în spate salvarea,
Te vor ajuta doi, pe care îi vei găsi printre noi;
Cu una dintre cele șapte înainte vei continua să te miști
Cealaltă însă te va aduce înapoi imediat.
În doi dintre noi vei găsi doar vin de urzică,
Iar trei aduc moartea, stând în rând ascuns.
Așa că alege, din care să te bucuri,
Pentru asta îți dăm patru indicii.
În zadar otravă a încercat să-și ascundă letalitatea,
Întotdeauna o vei găsi la stânga vinului,
Și știe că cei de la margine, țin daruri diferite,
Dar dacă vrei să continui, nimic din asta nu va ajuta.
Suntem toți de aceeași dimensiune, de la margine la margine,
Moartea ta nu stă în mai puțin, dar nici în mai mult;
Al doilea de la dreapta și al doilea de la stânga
La gust sunt ca niște gemeni, deși par diferiți.
[din „traducerea populară” a cărții „Harry Potter și piatra filozofală”]

Pe scurt, ei trebuie să înțeleagă în ce sticle se află ce poțiuni.
În acest articol vom rezolva toate cele 42 de variante ale acestei probleme folosind programarea și vom desena un grafic al rezultatelor (ca în imaginea de mai sus, doar mult mai mare).
Un moment, dar de unde a apărut cele 42 de variante?
Totul se datorează faptului că locurile pentru poțiunile „mai mici” și „mai mari” nu sunt specificate. Poțiunea mare poate fi în oricare dintre cele șapte locuri, ceea ce lasă 6 variante pentru cea mică, totalizând 7 * 6 = 42. A afla ce configurație anume a avut în vedere J.K. Rowling când a conceput această enigmă nu va fi posibil, decât dacă nu va povesti despre asta pe Twitter. Dar până atunci, putem alege o versiune aleatorie și să lucrăm cu ea. Totuși, nu există garanții că aceasta va fi rezolvabilă, așa că lucrăm pentru binele comun, rezolvând toate cele 42 de variante ale enigmei (sau demonstrând nerezolvabilitatea acestora).
HAIDEȚI SĂ REZOLVĂM
În primul rând, aici sunt toate restricțiile enigmei, reformulate într-un mod simplu:
- Există două poțiuni inofensive, 3 otravă, una care permite să mergi înainte și una care permite să te întorci înapoi.
- La stânga fiecărei dintre cele două poțiuni inofensive se află o otravă.
- Potițiile de ambele părți sunt diferite, și niciuna dintre ele nu permite avansarea.
- Cele mai mari și cele mai mici sticle nu conțin otravă.
- A doua sticlă din stânga și a doua sticlă din dreapta conțin aceeași poțiune.
Cum să gestionăm această situație? Să considerăm următoarea variantă. Să notăm că, după cum spune enigma, în rând există 1 sticlă mai mică decât toate celelalte și 1 sticlă mai mare decât toate celelalte.

Să încercăm să verificăm toate variantele – să luăm câte o sticlă și să ajustăm toate opțiunile posibile de conținut.
De exemplu, prima sticlă nu poate conține o poțiune care ne avansează din cauza restricției nr. 3. De asemenea, nu conține o poțiune sigură din cauza restricției nr. 2 – nu poate exista otravă la stânga ei. Aceasta ne lasă opțiuni cu otravă și cu o poțiune care ne întoarce înapoi. Vom încerca ambele variante.
În imaginile următoare, poțiunile verzi reprezintă otravă, cele portocalii – băuturi sigure, cele albastre – poțiuni care ne îndreaptă înapoi, iar cea purpurie – pe cea care avansează.


Vom repeta acest proces pentru ambele variante de lucru – vom lua a doua sticlă și vom încerca alternativ toate opțiunile acceptabile de conținut. Aceasta ne va oferi următoarele:




Continuând să acționăm în acest fel, și eliminând toate variantele viabile în care o sticlă nu poate fi umplută cu o poțiune fără a încălca restricțiile menționate, vom ajunge la singura variantă acceptabilă:

Desigur, nu aveam garanția de a găsi o soluție. Poate să nu existe o soluție, sau pot exista mai multe (iar dacă aveți mai multe soluții, acest lucru este echivalent cu a spune că enigma nu poate fi rezolvată, deoarece nu se știe care dintre poțiuni este corectă).
Aplicarea algoritmului la toate variantele ne oferă următoarele soluții. 8 variante ale enigmei sunt soluționabile, 8 nu au soluții, iar 26 au mai multe soluții.

Mai multe despre soluții
Există ceva comun între toate variantele acestei enigme? Da! Observați că cele mai mici sau cele mai mari sticle se află pe locurile 2 sau 6. Aceasta ne permite să concluzionăm că sticlele 2 și 6 conțin poțiuni sigure din cauza restricțiilor nr. 4 și 5. Fără acest pas, nu putem elimina posibilitatea ca aceste sticle să conțină otravă și ajungem, în cele din urmă, la mai multe soluții posibile. De asemenea, variantele rezolvabile necesită ca a doua „sticlă specială” (cea mai mică sau cea mai mare) să fie pe locurile 3 sau 4. Altfel, nu reușim să găsim locația exactă a poțiunii care ne împinge înainte.
Concluzii
Voi încheia cu o citat din carte.
Hermione a suspinat adânc, iar Harry a observat cu uimire că ea zâmbea – acesta era ultimul lucru la care s-ar fi gândit. „Genial”, a spus Hermione. – „Nu este magie – este logică, o enigmă. Mulți dintre cei mai mari magi nu au niciun gram de logică și ar rămâne blocați aici pentru totdeauna”.
Dar, stai puțin – poate că putem înțelege versiunea canonică a enigmei pe baza dialogului din carte:
„Am înțeles,” a spus ea. „Cea mai mică sticlă ne va duce prin focul negru, și la piatră”.
…
„Și care îți va permite să te întorci prin focul purpuriu?”
Hermione a arătat spre sticla rotunjită de pe partea dreaptă a rândului.
Naiba. Această variantă tot ne oferă câteva soluții. Scrieți tweeturi, DR.
Cod
Dacă ești interesat de codul pentru a rezolva această enigmă și a desena diagrame, îl poți .
Sursa: habr.com
