JeuxScience

Trouverez-vous une solution rapide et ingénieuse à ce problème ?

Salut à vous, internautes férus d’énigmes chiffrées et de mystères codés ! 

Voici un petit problème – pas tout à fait une énigme – dont j’ai conçu plusieurs variantes. Sa grande qualité : il s’énonce en peu de mots. En revanche, sa résolution n’est pas forcément simple… Je n’ai pas encore trouvé de façon rapide et ingénieuse d’en venir à bout, sur un simple coin de nappe.

Je serais curieux de connaître votre méthode pour l’élucider ! Les commentaires vous sont ouverts.

Marcel discute avec Bob :

Marcel Si l’on additionne nos âges, le total s’écrit exclusivement avec des chiffres présents dans nos âges. Des chiffres différents (c’est-à-dire qu’aucun chiffre n’est répété)*.

Bob C’est également vrai si l’on soustrait ton âge au mien ! Le résultat s’écrit exclusivement avec des chiffres présents dans nos âges. Des chiffres différents.

Quels sont les âges de Bob et de Marcel (sachant que tous deux ont moins de 100 ans ?)

* Cette somme ne peut donc être ni 77, ni 101, ni 133, car un même chiffre y est présent deux fois. Un même chiffre peut apparaitre dans les deux âges mais pour autant, il ne peut pas apparaître deux fois dans le résultat de l’addition. Ni, comme le précisera Bob, dans le résultat de la soustraction. Précisons enfin pour les petits futés qu’aucun âge ne s’écrit avec un zéro à gauche (012, 045….), et que les âges de Bob et de Marcel sont des nombres entiers (pas d’âges « à virgule » !). Dernière remarque utile : la différence des âges donne un nombre qui s’écrit avec des chiffres (et non un seul).


Exemple : si Bob avait 47 ans et Marcel 25, la somme de leurs âge serait 72 ans, qui s’écrit bien exclusivement avec des chiffres parmi 2,5,4 et 7, et ne présente pas deux fois le même chiffre. Mais la différence des deux âges vaut 22 : si ce nombre est bien composé de chiffres parmi 2,5,4 et 7, le chiffre 2 y est répété, ce qui ne convient pas.

52 réflexions sur “Trouverez-vous une solution rapide et ingénieuse à ce problème ?

  • Alain P.

    Bob = 80
    Marcel = 24
    Différence = 56

    Répondre
    • tinobambino

      @alain…vous n’avez rien compris je crois!

      Répondre
  • xavier

    Bob : 28
    Marcel : 14
    Addition : 42
    Soustraction : 14

    Je me suis dit que 1 : plus facile avec des petits chiffres et
    2 : ce doit etre possible d’obtenir un des 2 ages avec la soustraction, il restait juste à trouver l’addition

    Répondre
    • pierre

      Bien joué! mais il doit y’avoir un raisonnement à trouver pour prouver qu’il n’y a qu’une seule réponse (enfin je suppose qu’il n’y en a qu’une)

      Répondre
    • Bibi

      Un algo rapide confirme le 28 et 14, et c’est la seule solution.

      Répondre
      • @curiolog

        Sûr, mais… Comment résoudre l’énigme sans ordinateur, sur un coin de nappe ? That is the problem…

        Répondre
    • Ben

      Mais le 14 ne comprend pas de chiffre composant l’âge de Marcel lors de la soustraction

      Répondre
  • Mathias

    Bob a 10 ans
    Marcel a 9 ans

    9+10=19
    10-9=1

    Répondre
  • tinobambino

    Le différence des ages doit donner DES chiffres et non un seul…donc 10 ans et 9 ans ne marche pas

    Répondre
    • Aller …. J’étais contant avec 10 et 5.

      Répondre
  • Miaou le chat

    Intéressant:
    – Si on traduit l’énoncé, on déduit que l’âge de Bob est supérieur à celui de Marcel et qu’a fortiori Bob est âgé d’au moins 10 ans de plus que Marcel.
    – Si on considère que l’âge de Bob est égal à a*10 + b et celui de Marcel à a’*10+b’ avec a et a’ compris entre 0 et 9 et b compris entre 0 et 9, on trouve que, pour les paramètre (a,b) et (a’,b’) donnés et différents, il y a au maximum 24 possibilités de somme égale à nombre supérieur à 100 s’écrivant avec 3 chiffres différents parmi ceux-ci, et 12 pour une somme inférieure à 100.
    – S’agissant de la différence, il y a 12 possibilités (la différence est nécessairement à deux chiffres) à supposer les paramètres soient tous différents.
    – Comme la différence entre Bob et Marcel donne un nombre, a et a’ sont nécessairement différents
    – On a donc seulement le cas ou b=b’ qui est un cas limite. Dans ce cas, il y a 6 possibilités différentes lorsque la somme est supérieure à 100 et 6 lorsque celle-ci est inférieure à 100.

    Ceci étant dit, il me semble qu’il reste pas mal de combinaisons à tester en utilisant un système d’écriture en base 10 (un tableur pourrait faire l’affaire), mais je ne vois pas de méthode de résolution « facile ».

    Répondre
    • Wilfried Maineult

      Comment arrive tu à dénombrer les 24 possibilités supérieures à 100 dans l’addition, les 12 inférieures, etc ?

      Répondre
  • 14 et 28 m’ont l’air de bon candidats

    Répondre
    • Et se sont les seuls qui remplissent les contraintes pour tous les ages de 1 à 99 pour bob & marcel

      Répondre
  • Sans considérer les contraintes de * on a :
    Trouvé : marcel=5 bob=10 somme=15 diff=5
    Trouvé : marcel=9 bob=10 somme=19 diff=1
    Trouvé : marcel=10 bob=5 somme=15 diff=5
    Trouvé : marcel=10 bob=9 somme=19 diff=1
    Trouvé : marcel=14 bob=28 somme=42 diff=14
    Trouvé : marcel=17 bob=24 somme=41 diff=7
    Trouvé : marcel=24 bob=17 somme=41 diff=7
    Trouvé : marcel=25 bob=27 somme=52 diff=2
    Trouvé : marcel=27 bob=25 somme=52 diff=2
    Trouvé : marcel=28 bob=14 somme=42 diff=14
    Trouvé : marcel=38 bob=46 somme=84 diff=8
    Trouvé : marcel=45 bob=49 somme=94 diff=4
    Trouvé : marcel=46 bob=38 somme=84 diff=8
    Trouvé : marcel=49 bob=45 somme=94 diff=4
    Trouvé : marcel=50 bob=51 somme=101 diff=1
    Trouvé : marcel=51 bob=50 somme=101 diff=1

    Si on ajoute la contraire de la différence sur un seul chiffre il ne reste qu’une possibilité

    Répondre
  • Massi Benjamin

    Marcel a 14 ans et Bob 28 ans

    La somme de leur âges est de 42 ans

    Si tu soustrais 28 à 14 tu trouves

    14

    Répondre
  • tom

    Le plus simple reste de faire un programme informatique. On n’obtient effectivement qu’une seule solution.

    Répondre
  • Alain P.

    Est-ce que la solution passerait par « Bob a toujours le double de l’âge de Marcel et que l’âge de Bob soit égal ou supérieur à 20 et au maximum égal à 66 ans ?

    Répondre
  • Informaticien

    bob= 28 , marcel= 14

    la méthode (peu glorieuse je l’avoue) a été de tester toutes les combinaisons possibles avec un script sous python…

    Répondre
  • rene

    Il n’y a effectivement qu’une solution (celle donnée ci-dessus, 28 et 14) en prenant toutes les hypothèses énoncées.

    Un petit programme informatique permet de balayer toutes les combinaisons en un rien de temps.

    Répondre
  • Ce problème ne tient pas la route.
    Bob ne peut pas avoir 28 ans et Marcel 14 ans ! En posant comme hypothèse que Bob est le diminutif de Robert, ce ne sont pas des prénoms de personnes nées en 2001 et 1987. Ils sont forcément plus vieux… avant-guerre peut-être.
    En revanche, la solution (14,28) colle avec les prénoms Lucas et Nicolas. Pierre et Cédric. Kévin et Laurent.

    Répondre
    • Alain P.

      Alors là elle est bien bonne Lagarde. Voilà une réflexion qui mérite d’être encadré. M’a bien fait rire et j’imagine que c’était le but ! Bravo !!!

      Répondre
    • rubis

      A mon avis il a choisi des prénoms qui sont aussi des vêtements…

      Répondre
    • @curiolog

      Je n’ai pas précisé à quelle date s’est tenu cet échange ! Mais vous êtes fin prêt pour une énigme qui dort depuis quelques mois dans mes tiroirs… A paraître sous peu ! 🙂

      Répondre
  • Lambert

    Robert = 14 ans, et marcel 28 ans.

    Total = 42 ans.
    Différence = 14 ans.

    Répondre
  • douheret

    Ce problème mêle arithmétique et probabilités. Il s’agit, en additionnant ou soustrayant des nombres dont les chiffres peuvent être tous différents (ou non), d’obtenir un résultat dont les propres chiffres sont différents entre eux mais appartiennent à l’ensemble des chiffres donnés au départ. La base 3 (0,1,2,3) est le système minimal qui permet de réunir ces conditions. Peut-être pourrait-on ainsi déterminer une solution générique.
    Le couple-solution en base 10 (28,14) ne fonctionne pas en base 3 (ou 14 s’écrit 111), mais il fonctionne en base 5 avec le couple (103, 24), avec une somme de 132.
    Il s’agirait in fine d’analyser les tirages de chiffres sans répétition issus d’opérations entre 2 termes exprimés sous la forme : (x * B exp (n)) + (y * B exp (n-1)) + (…) + (z * B exp 0). Ici en base « B » donc.
    Ce ne sont que de modestes propositions de pistes…

    Répondre
    • rubis

      Merci, j’y vois beaucoup plus clair à présent…

      Répondre
    • Portix

      Merci, vu comme ça c’est effectivement limpide, on se demande pourquoi personne n’y a pensé

      Répondre
  • nicola

    Marcel est un petit génie et parle déjà

    Bob = 10
    Marcel = 0

    Bob + Marcel = 10
    Bob – Marcel = 10

    Répondre
  • Quentin

    Bonjour,

    Moi j’ai choisi les nombres 60 et 5.
    Mais c’est la seule possibilité en prenant une dizaine comme premier nombre.
    N’empêche qu’avec leur différence d’âge, je me demande vraiment comment ils en sont arrivés à cette discussion.

    Répondre
    • Malheureusement 60-5=55 … soit 2 fois le même chiffre …

      Répondre
  • simon

    def inSet(ch,plu):
    oui=True
    for c in str(ch):
    if not c in str(plu):
    oui=False
    return oui
    for am in range(1,100):
    for ab in range(am,100):
    pl=am+ab
    ms=ab-am
    if((len(set(str(pl)))==len(str(pl))) and
    (len(set(str(ms)))==len(str(ms))) and
    inSet(pl,str(am)+str(ab)) and
    inSet(ms,str(am)+str(ab))):
    print(am,ab,pl,ms)

    petite solution en python

    Répondre
  • rougemont

    Marcel + Bob = bronzage camionneur
    Marcel – Bob = insolation en prime

    Répondre
    • @curiolog

      J’espérais bien que quelqu’un remarquerait ! ^^ (merci pour l’équation, au passage 😉 )

      Répondre
  • Claverie

    Marcel a 0 an, ça marche avec n’importe quel age de Bob , sauf 11, 22, 33 etc…

    Répondre
  • Comme d’autres, j’ai facilement trouvé 14 et 28 en écrivant un bout de programme utilisant la force brute: pour chaque couple d’ages possibles (plus de 4000) vérifier les conditions. Ca marche mais ça manque d’élégance!

    Répondre
  • LJ

    Tentative d’explication :

    Partons de la soustraction si l’âge de Robert s’écrit AB et celui de Marcel ab
    la solution de la soustraction peut s’écrire sous les formes suivantes :
    AA : impossible par énoncé

    AB : « ab »= »00 » => tous les cas où Marcel a 0 ans et Robert 10 ans ou plus sont bons (vérifié dans l’addition : « AB+00=AB »)

    Aa : a=0 => B=b => »AB-0B=A0″=> je ne peux retrouver mon 0 de la solution que dans les cas ou B=0 => b=0 => Marcel a 0 ans …. cf supra

    Ab : a=0 => « AB-0b=Ab » => b (Bb) € {(2,1),(4,2),(6,3),(8,4)}
    on repasse à l’addition : comme a=0 l’addition se résume à
    (2,1) : A2+1=x3 => A = 3 (pour retrouver mon 3) => x=3=> faux par énoncé
    (4,2) : A4+2=x6 => A =6 (pour retrouver mon 6) => x=6=>faux
    (6,3) : A6+3=x9 => A=9 => x=9=>faux
    (8,4) : A8+4=y2 => A=2 => y= 3 => on ne retrouve pas 3 dans 28+4

    aA : A=2a et a (Aa) € {(2,1),(4,2),(6,3),(8,4)} et B>b
    on repasse par l’addition :
    (2,1) : « 2B+1b=xy » =>x€(3,4)
    si x=3 : B ou b=3 => y€(1,2,3)&y€(b+3,B+3) impossible

    Répondre
    • LJ

      erreur de bouton … mais ca commence à faire long de tout écrire ….. ça doit être plus simple que ça …

      Répondre
  • Lulbelle

    Donc acune méthode pour trouver la solution (14/28) sans programme informatique ?

    Répondre
  • Acropole

    Un ami mathématicien, utilisateur du logiciel Mathematica, a trouvé la solution en écrivant ces quelques lignes de code :

    test[{b_, m_}] := (bm =
    IntegerDigits[b]~Union~IntegerDigits[m] // Sort;
    bpm = IntegerDigits[b + m] // Sort;
    bmm = IntegerDigits[b – m] // Sort;
    bpm == Union@bpm && bmm == Union@bmm &&
    bpm~Intersection~bm == bpm && bmm~Intersection~bm == bmm);
    t = Table[{b, m}, {m, 1, 99}, {b, m + 10, 99}] // Flatten[#, 1] &;
    Select[t, test]

    {{28, 14}} (parmi 4005 cas traités)

    Mais bon, c’est toujours en utilisant la force brute de l’informatique.

    Répondre
    • @curiolog

      Hé oui, hélas… Je n’ai pas encore trouvé de façon rapide et ingénieuse d’en venir à bout, sur un simple coin de nappe… peut-être n’en existe-t-il aucune. Mais comment démontrer (ou invalider!) l’impossibilité de démontrer la chose « facilement » et « sans force brute » ?

      Répondre
  • bambi

    Hi,

    Ces solutions sont elles valables ?

    « 20 82 –> add 102 sub 62  »
    « 20 83 –> add 103 sub 63  »
    « 20 84 –> add 104 sub 64  »
    […]

    Répondre
    • bambi

      « 6 62 –> add 68 sub 56  »
      « 2 23 –> add 25 sub 21  »
      « 2 22 –> add 24 sub 20  »
      ??

      Répondre
  • fleb

    my two cents:

    si on pose l’age de Bob comme 10a+b
    et l’age de Marcel comme 10x+y

    la somme des ages est donc = 10x+y+10a+b = 10c+d
    avec c = a ou b ou x ou y
    et d = a ou b ou x ou y (mais différent de c)

    mais dans ce cas la on peut déjà éliminer d’office le fait que c = x ou a
    puisque 10x + 10a dans tous les cas sera > à 10x ou 10a

    donc le chiffre des dizaines de la somme des ages (c) sera l’un des chiffres des unités de l’âge de Bob ou Robert (a ou y)

    ce qui se vérifie avec la solution 24/18

    je pense qu’un raisonnement similaire doit pouvoir se faire avec la soustraction et réduire encore un peu le champs des possibilités à tester

    Répondre
  • LJ

    @Fleb : sauf si un des 2 est âgé de moins de 10 ans, ce qui n’est pas exclu dans l’énoncé.

    Répondre
  • LJ

    Je ne sais pas si ça tient sur un coin de table, mais voici une solution relativement économe en papier :
    On fait 2 tableaux à double entrée :
    Les en-têtes : les unités de l’âge de Marcel et les unités de l’âge de Robert
    Les valeurs : 1er tableau : l’unité qui résulte de l’addition / 2ème tableau : l’unité qui résulte de la soustraction (on ajoute 10).

    On s’aperçoit qu’on a 4 chiffres différents (Unités+dizaines) pour chaque paire donc faciles à vérifier=> puis que le plus grand des 2 résultats va à Bob et le plus petit à Marcel.
    Sauf pour les paires {(2,1),(2,6),(4,2),(4,7),(6,3),(6,8),(8,4),(8,9)} et tous les cas où les unités de Marcel = 5 pour lesquels nous n’avons que 3 chiffres différents.
    Cependant 3 chiffres c’est largement suffisant pour déduire relativement facilement tous les cas (on a au moins le chiffre de la dizaine de l’un ou de l’autre des protagonistes).

    Dites-moi si ça fait avancer le schmilblick …

    Répondre
  • Ben

    *Bob pas Marcel dans mon commentaire

    Répondre
  • Harout Kodjian

    La Solution la plus Rapide
    En prenant l’âge de Bob le double de celui de Marcel, d’entrée la question de la soustraction des âges est résolue. Quant à l’addition, on prend des petits nombres autant que possibles pour ne pas dépasser 10 dans l’addition des chiffres des dizaines. On prend aussi des âges à 2 chiffres. On commence par les plus petits.
    (10, 20) (11, 22) (12, 24) (13, 26) (14, 28)
    Surprise, dès les premiers essais on trouve 14 et 28.
    28 + 14 = 42 et
    28 – 14 = 14

    Répondre

Laisser un commentaire