Aller au contenu
  • 0

Énigmes

Une de mes énigmes préférés se trouvant sur ma page d'énigmes Facebook :

Un ingénieur informaticien veut recruter un programmeur pour son cabiné de développement. Trois postulants se présentent. Après leur avoir posé quelques questions, l'employeur décide de les départager avec un test. Il leur demande de réaliser un algorithme sachant donner uniquement tous les nombres premiers compris entre 1 et 10 puissance 20.

Il donne le nécessaire de travail à chacun et doivent par la suite enregistrer leur algorithme sur une clé USB. Chacun des trois postulants travaille sur un poste isolé sans contacts avec les 2 autres et travaillent donc dans trois pièces différentes. Il ne peuvent communiquer entre eux d'aucunes manières. Après cela, l'employeur récupère les trois clés USB en les identifiant mais dont lui seul connais le propriétaire. Ensuite, après copie dans l'ordinateur des candidats, il demande à chacun d'eux de vérifier l’algorithme des deux autres postulants, mais pas celui que lui-même à conçu, que l'employeur n'a bien sûr pas copié.

Il leur soumet ensuite cette proposition : "Celui qui constate qu'au moins un des algorithmes qu'il a testé est juste, il peut venir dans mon bureau. Et s'il sait comment expliquer comment il a pu déterminer si son propre algorithme est bon ou mauvais aura le poste."

Les candidats ne pouvant communiquer entre eux, se présentent tout les trois dans le bureau de l'employeur et s'assoient chacun sur une chaise. Au bout d'un certain temps, l'un deux se lève et annonce qu'il sait si son algorithme est bon ou mauvais en étant certain à 100% de ce qu'il avance. Et effectivement, l'employeur confirme et lui donne le poste.

Son algorithme, était-il bon ou mauvais ? Et comment a t'il trouvé ?

Partager ce message


Lien à poster
Partager sur d’autres sites

12 réponses à cette énigme

Messages recommandés

  • 0

Il existe des variantes dont la logique de résolution est similaire. Comme par exemple, des points blancs ou noirs sur le front des trois candidats. Une autre variante avec quatre candidats et deux points blancs ou noirs sur les fronts d'au moins deux autres candidats. Ou encore une autre variante avec des sages dans un train à vapeur ayant de la suie sur le visage car l'un d'entre eux à ouvert la fenêtre... etc. Je ne connais pas celle avec les chapeaux sur la tête. Je vais essayé de la trouver par curiosité.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Ça paraît beaucoup plus clair avec des points noirs et des points blancs. La nature du test des nombres premiers pose problème : n'est-il pas possible qu'un code soit très long à tester, ou qu'un candidat n'ait pas toutes les compétences pour être certain du caractère juste ou faux d'un algorithme ?

Si on admet que la vérification est à la portée des trois candidats et qu'ils se dépêchent de vérifier :

"Celui qui constate qu'au moins un des algorithmes qu'il a testé est juste, il peut doit venir dans mon bureau" avec doit à la place de peut j'arrive à la conclusion que dès qu'un candidat a trouvé un algorithme juste, il va se précipiter dans le bureau de l'employeur. Si après la fin des vérifications, personne n'est venu dans le bureau, cela signifie que tous les algorithmes sont faux.

"Et Ou s'il sait comment expliquer comment il a pu déterminer si son propre algorithme est bon ou mauvais (il?) aura le poste" Le "et" du début me gêne... Il n'y aurait pas d'algorithme juste. Dès que le temps raisonnable pour que les candidats aient testé les algorithmes est dépassé, l'un des candidats peut toujours tenter d'aller voir l'employeur dans son bureau et lui dire : "puisque vous n'avez vu personne avant moi, cela signifie que tous les algorithmes sont faux, y compris le mien."

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Dans tous les cas, l'employeur, qui est ingénieur, confirme la justesse de la réponse du candidat qui annonce sa réponse. On peut supposer qu'il possède déjà un algorithme juste qu'il peut comparer avec ceux des candidats.

De plus, il est bien précisé dans l'énoncé que tous les candidats se sont présentés dans le bureau. Donc, d'une manière ou d'une autre, il n'y a pas lieu de se poser la question de qui va se présenter ou non. Puisqu'ils se présentent tous les trois, c'est qu'il y a forcément plusieurs algorithmes bons. Mais pas forcément tous.

Le "Et" aussi est important car seuls ceux dont les test ont au moins un positif et qui se présente peut proposer son explication. Ce qui dénote justement ces capacités d'analyses d'un algorithme tiers et qui est un plus important pour ce que recherche l'employeur : un bon programmeur.

Dans tous les cas la réponse est soumise à l'employeur et, en cas d'erreurs d'un candidat, l'employeur ne l'embauche pas. Par contre, l'employeur sait lesquels sont justes ou faux. Dans l'énoncé de l'énigme, il confirme la réponse du candidat et l'embauche. Ca veut dire quoi ? Que sont algorithme est juste ou bon ? Le fait est qu'il faut déjà se poser la question de savoir dans quelles conditions les trois candidats peuvent se présenter dans le bureau de l'employeur. La moitié de la réponse est déjà faite.

"peut" ou "doit" dans la première phrase n'a aucunes conséquences puisque de toute manière dans la suite de l'énoncé il est écrit que les trois candidats se présentent. Donc, d'une manière ou d'une autre, puisque les trois candidats sont informées des conditions ils ont tout intérêt à venir dans le bureau de l'employeur si un algorithme testé est juste, qu'il ai fait une erreur d'analyse ou non. S'il soumet une réponse alors qu'il à fait une erreur dans ses analyses, il n'aura pas le poste. S'il ne propose rien et qu'un autre fait une proposition juste sur le fond, alors que son algorithme est faux, l'employeur compare avec son propre algorithme et ne lui donne pas le poste. A partir du moment où il y a une erreur d'analyse quelle qu'elle soit, celui qui propose n'aura pas le poste. On peut donc supposer qu'aucun des candidats n'ont fait d'erreurs d'analyses.

Modifié par CDavid.TS

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

A la rigueur, l'information supplémentaire qui aurait pu éviter cette ambiguïté est que l'employeur les attends tout simplement dans son bureau pour que les candidats puissent donner leur explication. La seule notion de temps indiquée dans l'énoncé est "Au bout d'un certain temps..." dans l'avant dernière phrase. Toutes autres notions de temps est superflue et inutile. Le résultat est déjà indiqué dans l'énoncé. Le tout est de savoir répondre aux questions de l'énigme. Le reste est affaire de pure déductions logiques.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

920396.gifEffectivement, j'ai mal lu l'énoncé.

J'ai dû le relire 4 ou 5 fois avant de comprendre qu'il y avait une ellipse : l'employeur annonce les modalités aux candidats qui n'ont encore pas testé les algorithmes :

"Celui (ou ceux) qui constate qu'au moins un des algorithmes testés est juste, il peut venir dans mon bureau. Et s'il sait comment expliquer comment il a pu déterminer si son propre algorithme est bon ou mauvais, il aura le poste."

La phrase suivante, implicitement, j'ai mal compris, j'ai pensé à une redite du début de l'énoncé ("Trois postulants se présentent.") ne pouvant m'imaginer que les candidats avaient eu le temps de faire quoi que ce soit depuis la phrase précédente :

Les candidats ne pouvant communiquer entre eux, se présentent après avoir testé les algorithmes tous les trois dans le bureau de l'employeur.

il y a au moins deux bons algorithmes (pour que tout le monde vienne dans le bureau). S'il n'y avait que deux bons algorithmes, ceux qui auraient eu affaire à l'algorithme faux sauraient que leur algorithme est juste, et pourraient le dire immédiatement à l'employeur. Comme personne ne va parler immédiatement à l'employeur, la seule solution est que les trois algorithmes sont justes.

Quoique, si je tenais à mon poste, personnellement, j'irais dans le bureau de l'employeur y compris si j'avais deux algorithmes faux testés. Rien à perdre... Quand ils croiraient que leur algorithme est juste (voyant qu'il y a trois candidats présents) , ils prétendraient que leur algorithme est juste, mais je les démasquerais, ne laissant pas l'employeur embaucher des incapables !

à moins qu'ils aient fait la même chose que moi, et que les trois algorithmes soient faux, auquel cas on revient à la solution fausse proposée au départ...

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bien Ribi mais, un détail important : l'ingénieur sait si un candidat ment, dans n'importe quel cas, car, comme dit précédemment, on peut supposer que l'employeur possède son propre algorithme qu'il peut comparer avec celui des candidats, et donc, déduire de ce fait, les différents raisonnements possibles, qu'ils soient justes ou non et de déterminer les menteurs qui ne seront pas embauchés car déjà démasqués par l'employeur.

Modifié par CDavid.TS

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Une de mes énigmes préférés se trouvant sur ma page d'énigmes Facebook :

Un ingénieur informaticien veut recruter un programmeur pour son cabiné de développement. Trois postulants se présentent. Après leur avoir posé quelques questions, l'employeur décide de les départager avec un test. Il leur demande de réaliser un algorithme sachant donner uniquement tous les nombres premiers compris entre 1 et 10 puissance 20.

Il donne le nécessaire de travail à chacun et doivent par la suite enregistrer leur algorithme sur une clé USB. Chacun des trois postulants travaille sur un poste isolé sans contacts avec les 2 autres et travaillent donc dans trois pièces différentes. Il ne peuvent communiquer entre eux d'aucunes manières. Après cela, l'employeur récupère les trois clés USB en les identifiant mais dont lui seul connais le propriétaire. Ensuite, après copie dans l'ordinateur des candidats, il demande à chacun d'eux de vérifier l’algorithme des deux autres postulants, mais pas celui que lui-même à conçu, que l'employeur n'a bien sûr pas copié.

Il leur soumet ensuite cette proposition : "Celui qui constate qu'au moins un des algorithmes qu'il a testé est juste, il peut venir dans mon bureau. Et s'il sait comment expliquer comment il a pu déterminer si son propre algorithme est bon ou mauvais aura le poste."

Les candidats ne pouvant communiquer entre eux, se présentent tout les trois dans le bureau de l'employeur et s'assoient chacun sur une chaise. Au bout d'un certain temps, l'un deux se lève et annonce qu'il sait si son algorithme est bon ou mauvais en étant certain à 100% de ce qu'il avance. Et effectivement, l'employeur confirme et lui donne le poste.

Son algorithme, était-il bon ou mauvais ? Et comment a t'il trouvé ?

Il existe des variantes dont la logique de résolution est similaire. Comme par exemple, des points blancs ou noirs sur le front des trois candidats. Une autre variante avec quatre candidats et deux points blancs ou noirs sur les fronts d'au moins deux autres candidats. Ou encore une autre variante avec des sages dans un train à vapeur ayant de la suie sur le visage car l'un d'entre eux à ouvert la fenêtre... etc. Je ne connais pas celle avec les chapeaux sur la tête. Je vais essayé de la trouver par curiosité.

Dans tous les cas, l'employeur, qui est ingénieur, confirme la justesse de la réponse du candidat qui annonce sa réponse. On peut supposer qu'il possède déjà un algorithme juste qu'il peut comparer avec ceux des candidats.

De plus, il est bien précisé dans l'énoncé que tous les candidats se sont présentés dans le bureau. Donc, d'une manière ou d'une autre, il n'y a pas lieu de se poser la question de qui va se présenter ou non. Puisqu'ils se présentent tous les trois, c'est qu'il y a forcément plusieurs algorithmes bons. Mais pas forcément tous.

Le "Et" aussi est important car seuls ceux dont les test ont au moins un positif et qui se présente peut proposer son explication. Ce qui dénote justement ces capacités d'analyses d'un algorithme tiers et qui est un plus important pour ce que recherche l'employeur : un bon programmeur.

Dans tous les cas la réponse est soumise à l'employeur et, en cas d'erreurs d'un candidat, l'employeur ne l'embauche pas. Par contre, l'employeur sait lesquels sont justes ou faux. Dans l'énoncé de l'énigme, il confirme la réponse du candidat et l'embauche. Ca veut dire quoi ? Que sont algorithme est juste ou bon ? Le fait est qu'il faut déjà se poser la question de savoir dans quelles conditions les trois candidats peuvent se présenter dans le bureau de l'employeur. La moitié de la réponse est déjà faite.

"peut" ou "doit" dans la première phrase n'a aucunes conséquences puisque de toute manière dans la suite de l'énoncé il est écrit que les trois candidats se présentent. Donc, d'une manière ou d'une autre, puisque les trois candidats sont informées des conditions ils ont tout intérêt à venir dans le bureau de l'employeur si un algorithme testé est juste, qu'il ai fait une erreur d'analyse ou non. S'il soumet une réponse alors qu'il à fait une erreur dans ses analyses, il n'aura pas le poste. S'il ne propose rien et qu'un autre fait une proposition juste sur le fond, alors que son algorithme est faux, l'employeur compare avec son propre algorithme et ne lui donne pas le poste. A partir du moment où il y a une erreur d'analyse quelle qu'elle soit, celui qui propose n'aura pas le poste. On peut donc supposer qu'aucun des candidats n'ont fait d'erreurs d'analyses.

A la rigueur, l'information supplémentaire qui aurait pu éviter cette ambiguïté est que l'employeur les attends tout simplement dans son bureau pour que les candidats puissent donner leur explication. La seule notion de temps indiquée dans l'énoncé est "Au bout d'un certain temps..." dans l'avant dernière phrase. Toutes autres notions de temps est superflue et inutile. Le résultat est déjà indiqué dans l'énoncé. Le tout est de savoir répondre aux questions de l'énigme. Le reste est affaire de pure déductions logiques.

Bien Ribi mais, un détail important : l'ingénieur sait si un candidat ment, dans n'importe quel cas, car, comme dit précédemment, on peut supposer que l'employeur possède son propre algorithme qu'il peut comparer avec celui des candidats, et donc, déduire de ce fait, les différents raisonnements possibles, qu'ils soient justes ou non et de déterminer les menteurs qui ne seront pas embauchés car déjà démasqués par l'employeur.

Une réincarnation de Zeus ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bien Ribi mais, un détail important : l'ingénieur sait si un candidat ment, dans n'importe quel cas, car, comme dit précédemment, on peut supposer que l'employeur possède son propre algorithme qu'il peut comparer avec celui des candidats, et donc, déduire de ce fait, les différents raisonnements possibles, qu'ils soient justes ou non et de déterminer les menteurs qui ne seront pas embauchés car déjà démasqués par l'employeur.

Quoi qu'il en soit, tant que l'employeur n'est pas un tyran qui exécute les menteurs, je ne trouve pas dissuasive la menace, dans la mesure où, si un candidat n'a que des algorithmes faux devant lui, il ne sera pas embauché, qu'il aille voir l'employeur ou non...

Je trouve que dans la réalité, dans ce cas, cette situation pourrait se jouer comme un énorme coup de bluff, comme une partie de poker, et je trouve ça assez génial... :vrabo:

Une réincarnation de Zeus ?

:ptdr:

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...

Information importante

En utilisant ce site, vous acceptez notre Politique de confidentialité et nos Conditions d’utilisation
Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.