Algorithme infaillible

jeudi 2 avril 2020 par SocraticDev

Programmer c'est établir un parcours complexe où, peu importe quelle information y circule, le programme exécuté accomplit les fonctionnalités souhaitées. Sinon c'est un bogue à régler !

Ces 'parcours complexes' ont le nom d'algorithme. Un algorithme est comme une recette : une séquence d'opérations bien définies sur des ingrédients précis qui garantit un succès presqu'assuré.

Imaginons que nous sommes perdus dans une campagne inconnue et nous désirons rejoindre la ville la plus proche. Nous rencontrons deux frères à la croisée des chemins. Un est réputé pour dire la vérité à tout coup alors que l'autre est un absolu menteur. Mais nous ne savons pas, des deux, qui est le véridique et qui est le menteur. D'emblée nous sommes tentés de nous attaquer au problème insoluble de déterminer lequel nous dira la vérité.

C'est en vain !

Il existe un algorithme infaillible pour obtenir la direction de la ville la plus proche :

Il suffit de demander à chacun des frères : "Si je demandais la direction de la ville plus proche à ton frère, que me répondrait-il ?"

Et prendre la direction inverse.