<foo>
simply produces <foo>in the text).
<URL: http://somewhere.tld/ >
,
and it will be automatically made into a link.
(Do not try any other way or it might count as an attempt to spam.)mailto:
URI,
e.g. mailto:my.email@somewhere.tld
,
if you do not have a genuine Web site).
Denis (2025-05-07T08:30:09Z)
@Ruxor oui je voulais dire que la réponse de chatGPT est intéressante car il n'avait pas le contexte "vulgarisation sur les oracles", et a donc vu l'énigme purement comme une énigme de logique, ce qui lui a permis de trouver des solutions (adaptées pour l'énigme isolée mais pas dans le contexte oracles) que je n'aurais pas considérées. Ici ça n'aide pas dans le contexte réel, mais on peut facilement imaginer des cas où cette "ouverture d'esprit" permet de penser à de nouveaux types de solutions.
Ruxor (2025-05-06T14:58:25Z)
J'en profite pour répondre à un vieux commentaire précédent (j'avais oublié de le faire) :
@Subbak: Le changement de « au maximum une phrase a le droit d'être fausse » à « exactement une phrase doit être fausse » ne change en fait rien à ce que permet de faire l'oracle. En efeft, dans un sens c'est évident, et dans l'autre, si je veux l'interroger sur trois phrases (A), (B) et (C) dont au plus une est fausse, je vais l'interroger à la place sur les trois phrases suivantes : (A), (B) et (C∧¬(A∧B)) (autrement dit, j'ajoute juste « et l'une des deux phrases précédentes est fausse » à la troisième phrase). C'est facile de vérifier que si ≤1 phrase parmi (A), (B) et (C) est fausse, alors exactement 1 parmi (A), (B) et (C∧¬(A∧B)) est fausse, et qu'en connaître une vrai parmi ces dernières permet de retrouver une vraie parmi les phrases d'origine.
Ruxor (2025-05-06T14:37:09Z)
@Denis:
Cette solution enfreint une des règles tacites de l'énigme, et évidemment le problème avec la vulgarisation c'est qu'il est un peu délicat d'expliquer pourquoi sans tout formaliser, mais disons que ce type d'auto-référence est intrinsèquement contradictoire. En fait, ce n'est pas tellement l'auto-référence que la référence à la vérité : le fait de pouvoir faire référence à la vérité d'un énoncé, y compris par le truchement d'un oracle omniscient, conduit à des paradoxes à foison. (L'énoncé mathématique sous-jacent est le théorème de Tarski sur l'indéfinissabilité de la vérité, <URL: https://en.wikipedia.org/wiki/Tarski%27s_undefinability_theorem >.)
Peut-être que l'illustration la plus simple du paradoxe est la suivante : si j'ai un oracle omniscient qui n'accepte que de répondre par « oui » ou « non » à une question et qui répond toujours correctement, je peux m'en servir pour exaucer des vœux. Par exemple, pour recevoir de l'argent, je vais lui poser la question : « est-ce que tu vas soit répondre “non” à cette question soit me donner 1 000 000 000 000 ¤ ? » — manifestement il ne peut pas répondre « non » (car alors la réponse à la question posée serait positive), donc il va répondre « oui », et du coup il va me donner l'argent. (Et quand je dis « exaucer des vœux », je peux en fait rendre n'importe quoi vrai, et évidemment créer une Contradiction. Cf. <URL: http://perso.enst.fr/madore/inf110/transp-inf110-02-typage.pdf >, transparent 17/123.)
Et avec un tout petit peu de travail, je peux utiliser la même astuce avec un oracle qui, comme je l'ai proposé, va répondre une phrase juste parmi 3 dont au moins 2 sont vraies. Par exemple, en proposant à l'oracle les trois phrases : Ⓐ « tu vas me donner 1 000 000 000 000 ¤ et en plus de ça, la porte 1 conduit au trésor », Ⓑ « tu ne vas pas répondre Ⓑ », et Ⓒ « tu ne vas pas répondre Ⓒ ». La phrase Ⓑ ne peut pas être fausse (sinon l'oracle répondrait Ⓑ, mais l'oracle répond toujours quelque chose de vrai), et de même pour la Ⓒ, donc on a bien au pire une phrase fausse (la Ⓐ), mais comme l'oracle doit répondre quelque chose et ne peut pas répondre ni Ⓑ ni Ⓒ, il doit forcément répondre Ⓐ, et du coup, me donner l'argent et en plus la porte 1 conduira au trésor.
C'est essentiellement ça que fait ChatGPT (de façon moins claire), mais, voilà, c'est de la triche. Maintenant je reconnais que je n'ai pas clairement dit selon quelles règles c'est « de la triche ».
(Plusieurs des commentaires précédents ont donné des réponses correctes et comme il était attendu, donc je ne reviens pas dessus.)
Denis (2025-05-06T11:41:00Z)
Suite au billet sur l'IA je n'ai pas résisté à tester chatGPT (o3) sur l'énigme des lutins, en copiant juste l'énoncé. Il a proposé du premier coup une réponse sympa qui fonctionne, avec un twist d'autoréférence. Etant moi-même influencé par le contexte d'oracles, je n'aurais probablement pas pensé à faire ce type d'autoréférence dans la question, qui serait a priori interdite pour un oracle (mais ça serait rigolo de voir ce que ça donnerait en l'autorisant), alors que c'est plutôt typique dans ce genre d'énigmes.
---------
Une seule consultation du lutin suffit !
Numérote les portes 1 à 5, puis récite au lutin les trois phrases suivantes :
A. « Si tu me réponds en répétant cette phrase A, alors la porte 1 n’est pas mortelle. »
B. « Si tu me réponds en répétant cette phrase B, alors la porte 2 n’est pas mortelle. »
C. « La porte 3 n’est pas mortelle. »
(Chacune des phrases est parfaitement formulable en français ordinaire ; la seule subtilité est qu’A et B parlent de l’acte même de la réponse.)
[Explications de pourquoi ça marche, que je ne détaille pas ici]
(Cette astuce, basée sur des implications où la condition fait référence à la phrase elle‑même, est expliquée plus longuement par David Madore dans un billet sur les « oracles » et les portes mortelles ; voir l’énoncé complet )
----------
Le truc le plus drôle étant l'hallucination d'avoir lu la réponse ici, alors que sauf erreur de ma part elle n'y est pas.
jeanas (2024-05-14T14:14:09Z)
> (Il y a même la réduction one-to-one qui est encore plus restrictive en ce sens que les questions posées à l'oracle pour différentes instances du problème doivent être distinctes, mais elle ne me semble pas très intéressante.)
Ce paragraphe ayant piqué ma curiosité sur une question qui me turlupinait vaguement depuis un moment, j'ai écrit un truc là-dessus : <URL:https://jean.abou-samra.fr/blog/myhill-iso/>
Thomas (2023-10-12T15:56:25Z)
Bonne introduction à quelques problématiques de l'informatique théorique !
Concernant l'énigme, si je ne dis pas de bêtise je crois que ceci fonctionne même si c'est probablement excessivement compliqué :
On dit que (i, j) <= (k, l) ssi (#{i,j},i,j) <= (#{k,l},k,l) (ordre lexicographique), où #{x,y} désigne le nombre de portes OK parmi {x,y}.
L'algorithme suivant appelle au plus quatre fois l'oracle :
Appel 1:
L = [(1, 2), (2, 3), (1, 3)]
1. L[0] est dans le top 2 de L pour l'ordre défini plus haut.
2. L[1] est dans le top 2 de L pour l'ordre défini plus haut.
3. L[2] est dans le top 2 de L pour l'ordre défini plus haut.
L'oracle me donne un (i,j) qui est dans le top 2, en particulier les portes i et j ne sont pas simultanément KO (ceci ne peut se produire que pour au plus une paire).
Appel 2:
1. La porte i est OK
2. La porte j est OK
3. La porte i est KO ou (exclusif) la porte j est KO
Si i et j sont toutes les deux OK, la phrase 3 est fausse et l'oracle doit répondre 1 ou 2 (gagné!).
Sinon, l'oracle peut répondre 3 (ou une et une seule des deux autres réponses, gagné aussi!).
Supposons que l'oracle réponde 3: i est KO ou (exclusif) j est KO.
On note (k,l,m) les portes autres que i et j et on recommence les deux étapes, ce qui nous fait gagner nous donne (au pire des cas) deux indices i',j' tels que i,j,i',j' sont deux à deux distincts et i' KO xor j' KO également.
L'indice restant dans {1, 2, 3, 4, 5} \ {i,j,i',j'} désigne une porte OK, gagné!
bravor (2023-09-25T12:05:14Z)
Il me semble que dans l'exemple de la réponse de Vicnent toutes les phrases sont fausses si l'on suppose que les portes 1 et 4 mènent à la mort ?
Le lutin doit donc l'exécuter ou quelque chose m'échappe.
En posant les questions de la façon suivante on est sur de ne pas énoncer plus d'une phrases fausses :
1 ou 2 ou les deux mènent à la mort
2 ou 3 ou 4 ou les trois mènent à la mort
3 ou 4 ou les deux mènent à la mort
Vicnent (2023-09-13T15:45:45Z)
GPT4 …
<je veux que tu te mettes dans la peau d'un logicien expert, très expérimenté. Voici un problème. Je veux que tu me donnes dans un premier temps la réponse puis que tu m'expliques ensuite ton raisonnement.
> + copié collé de ton problème.
Réponse : ---------------------------
Interrogez le lutin avec les questions suivantes :
La porte 1 mène à la mort et la porte 2 mène à la mort.
La porte 2 mène à la mort et la porte 3 mène à la mort.
La porte 3 mène à la mort et la porte 4 mène à la mort.
Si le lutin répond qu'une de ces phrases est vraie, cela signifie que les deux portes mentionnées dans cette phrase mènent à la mort. Ouvrez alors la cinquième porte.
Si le lutin ne confirme aucune de ces phrases, alors cela signifie que chaque phrase contient au moins une porte qui ne mène pas à la mort, car le lutin doit dire une vérité parmi les propositions. Vous pouvez alors ouvrir une des portes qui n'apparaît que dans une seule des phrases, sachant qu'elle ne mènera pas à la mort.
Raisonnement:
Contraindre les réponses du lutin: Vous ne pouvez poser que trois questions au lutin, et il doit répondre avec une seule vérité. Vous devez donc formuler vos questions de manière à ce qu'au moins une des phrases fournies au lutin contienne une porte qui mène sûrement au trésor.
Exclure les mauvaises portes: Les phrases posées au lutin sont construites de manière à ce que si le lutin dit qu'une des phrases est vraie, vous serez sûr que les deux portes mentionnées dans cette phrase sont mauvaises. Cela ne laissera qu'une seule porte, la cinquième, comme option sûre.
Assurer une option sûre: Si le lutin ne confirme aucune des phrases, cela signifie que chaque phrase contient au moins une porte qui ne mène pas à la mort. Vous pouvez alors ouvrir l'une des portes qui n'apparaît que dans une seule des phrases, sachant qu'elle ne mènera pas à la mort.
Minimisation du risque: Le lutin essaiera de donner la réponse la moins utile, mais en posant les questions de cette manière, vous vous assurez que la réponse du lutin sera toujours utile pour identifier une porte sûre.
En suivant cette stratégie, vous pouvez identifier à coup sûr une porte qui ne mène pas à la mort.
END REPONSE ---------------------------
Subbak (2023-09-13T09:12:11Z)
Une variante qui pourrait rendre le problème du lutin plus intéressant (mais aussi peut-être plus dur à systématiser par rapport à l'approche proposée par jeanas est que parmi les trois phrases énoncées, *exactement une* doit être fausse, sous peine de mort.
Avec cette restriction j'ai une solution en au plus 3 interrogations, je pe demande si on peut faire mieux.
A : au plus une porte parmi 1 et 2 mène à la mort
B : au plus une porte parmi 2 et 3 mène à la mort
C : la porte 2 mène à la mort, et de même pour la porte 1 ou pour la porte 3
Si le lutin répond que C est vraie, on emprunte la porte 4 vers le trésor. Si il répond A (ou, mutatis mutandis, B), on propose les affirmations suivantes
A' : la porte 1 mène au trésor
B' : la porte 2 mène au trésor
C' : exactement une porte parmi 1 et 2 mène à la mort
Si il répond que A' ou B' est vraie, on a fini. Sinon, C' est vraie, donc exactement une porte parmi 3, 4 et 5 mène à la mort et on fait la 3ème étape suivante :
A'' : la porte 3 mène au trésor
B'' : la porte 4 mène au trésor
C'' : la porte 5 mène au trésor
jonas (2023-09-12T09:42:39Z)
That strategy for the lottery doesn't quite work as described, because when you only have two possibly values left, you can't exclude either of them. But jeanas has the right idea, you can ask questions until you reduce the winning numbers to just two possibly combinations, in which case you'll need to buy two tickets to win the jackpot; or if you're particularly stingy with lottery tickets, you can ask questions about both this Sunday and the next Sunday, and the oracle will have to reveal the winning combination for at least one of them.
jonas (2023-09-12T01:13:08Z)
On second thought, in the original stated version of the question, where the person that I ask isn't the cruel Doctor No who <URL: https://xkcd.com/246/ > stabs you if you ask tricky questions, but someone omniscient, I can do better.
Before asking anything about the doors, identify the lottery numbers that will be drawn this Sunday. Take all the numbers that may be drawn in the lottery, choose any three, for each three state that that number is not the lowest number that will be drawn in tomorrow's lottery, this way you eliminate one possible number as the lowest. Repeat by asking about three numbers that you haven't eliminated, this excluding another number, until you eventually eliminate all but one number and so you know that that one is the lowest number that will be drawn. Find the second lowest number in a similar way, then the third lowest etc. After you've found the lottery numbers, you can ask questions to find a safe door. Or, if you're more patient, you can ask questions to solve any other problem, such as find a proof of P ≠ NP or learn that there is no such proof. If you have access to such an oracle, you might even get tempted to never leave.
jonas (2023-09-12T00:52:57Z)
For every permutation (u, v, w, x, y) of the doors, I ask the cruel Doctor No about the following three statements: door u is safe; one of the doors v or w is safe; one of the doors x or y is safe. If the Doctor ever replies that a door is safe then I just enter that one. Otherwise there will be three doors, A, B, and C, such that the Doctor has told me that one of A or B is safe, he has told me that one of B or C is safe, and he has told me that one of A or C is safe. That implies that at most one of those three doors will kill me. Ask Doctor No about these three statements: door A is safe, door B is safe, door C is safe. Whichever he replies I can enter. As stated this is 11 questions, though if you are a bit more clever you'll find that 6 questions total is enough, because you can identify either a safe door or three doors of which two are safe in just 5 questions.
Gaumut (2023-09-11T14:46:26Z)
Dans des entrées précédentes sur les ordinaux vous sembliez indiquer qu'il existe une certaine équivalence entre nombre ordinal et classe de calculabilité, est-ce que ça a un rapport avec le degré de Turing ou ça n'a rien à voir ?
jeanas (2023-09-08T22:38:55Z)
Pour l'énigme, il me semble qu'on peut juste fournir des triplets d'affirmations de la forme : (a) les deux portes mortelles ne sont pas m1 et n1, (b) les deux portes mortelles ne sont pas m2 et n2, (c) les deux portes mortelles ne sont pas m3 et n3. En prenant m1 ≠ n1, m2 ≠ n2, m3 ≠ n3, et {m1, n1}, {m2, n2}, {m3, n3} deux à deux distincts, on est bien sûr qu'au plus une des affirmations (a), (b), (c) est fausse, et quand le lutin nous donne une affirmation vraie, on peut éliminer l'un des « 2 parmi 5 » = 10 paires possibles, et recommencer itérativement avec trois paires non encore éliminées, jusqu'à ce qu'il n'y ait plus que deux paires (distinctes) possibles. À ce stade, ces deux paires couvrent 3 ou 4 éléments, et en prenant le cinquième, on gagne.
> si on remplace 5, 2, 3, 1 dans l'énigme par respectivement k, m, k′, m′ (avec 0<k<m et 0<k′<m′)
Goal False. Proof. lia. Qed.