1 points par GN⁺ 2025-05-22 | 1 commentaires | Partager sur WhatsApp
  • Cette variante d’un puzzle d’opérations sur des fruits et des émojis vu sur Internet est traitée comme une équation diophantienne entière, en retraçant le processus jusqu’à l’obtention de solutions entières positives
  • L’outil central est une méthode géométrique qui consiste d’abord à trouver des points rationnels plutôt que des solutions entières directes, puis à générer de nouveaux points rationnels à l’aide de droites ou de tangentes
  • Après changement de variables et rotation, l’équation devient une courbe elliptique symétrique, mais les points faciles à repérer au premier abord ne mènent pas directement à des solutions positives du problème d’origine
  • Sur une courbe elliptique, la droite reliant deux points rationnels ou la tangente en un point produit un troisième point d’intersection, qui reste lui aussi rationnel grâce aux formules de Viète
  • Après avoir trouvé avec Mathematica un point moins trivial et répété les opérations, on construit finalement une énorme solution entière positive en revenant aux variables d’origine

Comment un puzzle d’émojis sur Internet s’est transformé en problème de mathématiques

  • Sur Internet circulaient largement des puzzles d’opérations avec des émojis conçus pour induire en erreur sur des détails comme le nombre de bananes, afin de produire des réponses différentes
  • Début 2017, un fil Reddit a été publié sur r/math pour dire en substance qu’on en avait assez des puzzles mathématiques façon Facebook avec des fruits, et un utilisateur a créé un problème plus difficile utilisant des images de fruits
  • Sridhar Ramesh a légèrement modifié ce problème puis l’a largement diffusé, le transformant en un casse-tête notoirement difficile dont la plus petite solution est très longue et qui est réputé nécessiter des connaissances sur les courbes elliptiques
  • L’objectif est de montrer comment résoudre effectivement cette version modifiée du problème des émojis

Exemple préparatoire : triplets pythagoriciens et points rationnels

  • On commence par le problème plus simple de la recherche de triplets pythagoriciens
  • Au lieu de chercher directement des solutions entières, on simplifie la structure en reformulant le problème comme la recherche de points rationnels sur le cercle unité correspondant
  • En partant d’un point rationnel du cercle unité et en traçant une droite de pente rationnelle, le second point d’intersection avec le cercle est lui aussi rationnel
    • Le calcul des intersections entre la droite et le cercle donne une équation quadratique
    • Les coefficients sont rationnels et, comme une racine est déjà rationnelle, l’autre l’est aussi d’après les formules de Viète
  • Inversement, tout autre point rationnel du cercle unité donne une droite de pente rationnelle lorsqu’on le relie au point de départ, ce qui permet d’obtenir tous les points rationnels de la même manière
  • Ce processus mène à la forme standard exprimant tous les triplets pythagoriciens à partir de deux entiers positifs et d’un facteur multiplicatif
  • Le motif important est cette méthode de la droite pour obtenir de nouveaux points, et une idée analogue est utilisée pour le problème des émojis

Transformer l’équation d’origine en courbe elliptique

  • Après élimination des dénominateurs, l’équation du problème des émojis se reformule non plus comme une recherche de solutions entières, mais comme une recherche de points rationnels portant sur les rapports entre variables
  • Au lieu de chercher immédiatement uniquement des solutions entières positives, on explore d’abord l’ensemble des points rationnels, avec valeurs positives comme négatives
  • Le graphe reste inchangé quand on échange deux variables, ce qui lui donne une symétrie inclinée
  • Pour plus de commodité, un changement de variables permet de faire tourner le graphe afin d’obtenir une forme symétrique par rapport aux axes, et cette courbe est appelée courbe elliptique
  • On peut repérer visuellement quelques points rationnels faciles sur le graphe, mais ils ne correspondent pas à des solutions positives valides du problème d’origine
  • Il faut donc partir de ces points faciles pour générer davantage de points rationnels

L’astuce de la droite fonctionne aussi sur les courbes elliptiques

  • Si l’on trace la droite reliant deux points rationnels (P) et (Q) sur une courbe elliptique, cette droite rencontre la courbe en un troisième point (R)
  • Ce troisième point d’intersection est lui aussi un point rationnel
    • En substituant l’équation de la droite dans celle de la courbe elliptique, on obtient une équation cubique en une variable
    • Les coefficients de cette équation cubique sont rationnels
    • Comme deux racines sont déjà rationnelles, provenant des coordonnées de (P) et (Q), la troisième l’est aussi par les formules de Viète
    • En remplaçant à nouveau dans l’équation de la droite, l’autre coordonnée est elle aussi déterminée comme rationnelle
  • Quand (P=Q), on utilise la tangente en ce point au lieu de la droite reliant deux points, et l’intersection se calcule en tenant compte de la multiplicité
  • Même en reliant les premiers points faciles ou en traçant leurs tangentes, on ne fait que répéter quelques points sans parvenir à étendre vers des points nouveaux et utiles
  • Ces points sont des points de torsion, si bien que répéter la même astuce de la droite ne permet plus de s’échapper vers de nouveaux points

Trouver un point rationnel dans la zone valide

  • Avec Mathematica, l’auteur a exploré des points rationnels moins triviaux sur la courbe elliptique, et l’un d’eux a servi pour les calculs suivants
  • Le but n’est pas de trouver n’importe quel point rationnel, mais un point qui, une fois retranscrit dans les variables d’origine, rende les trois valeurs positives
  • Si toutes les variables sont négatives, on peut inverser simultanément tous les signes pour obtenir une solution positive ; on suppose donc qu’une variable est positive et l’on remonte les conditions à partir de là
  • Cette condition apparaît comme une région verte particulière dans le plan des coordonnées transformées, et il faut envoyer un point rationnel de la courbe elliptique à l’intérieur de cette région
  • Le calcul à la main étant très fastidieux, Mathematica est utilisé pour calculer les formules des coordonnées des points d’intersection issus des opérations de droites et de tangentes
  • Des formules de coordonnées sont obtenues pour le troisième point d’intersection d’une droite reliant deux points ainsi que pour celui issu de la tangente en un point, et les expressions comme les nombres deviennent très volumineux

Construction finale d’une solution entière positive

  • En partant du point rationnel initial, on trace une tangente pour obtenir un nouveau point, puis on recommence depuis ce point pour produire le suivant
  • Même après plusieurs opérations de tangente, on n’entre pas immédiatement dans la région visée ; on relie donc ensuite un point au point obtenu en changeant le signe de ses coordonnées afin d’en produire un autre
  • À la fin, on relie un « bon » point rationnel mis de côté à l’avance avec le point aux grandes coordonnées obtenu plus tôt, ce qui permet enfin d’atteindre un point rationnel situé dans la région verte recherchée
  • On retranscrit ce point rationnel final dans les variables d’origine, puis on multiplie par le plus petit commun multiple des dénominateurs pour construire une solution entière positive
  • La vérification finale confirme que l’énorme solution entière ainsi construite satisfait bien l’équation du problème des émojis d’origine

1 commentaires

 
GN⁺ 2025-05-22
Avis sur Hacker News
  • Il existe une excellente réponse Quora à ce problème : https://www.quora.com/How-do-you-find-the-positive-integer-s...
    • Ce billet Quora a été écrit par Alon Amit et, pour référence, le texte original cite aussi Alon Amit ; son point de vue relève donc plutôt d’un commentaire a posteriori.
  • Sur un sujet lié, quand j’apprenais les maths à mes jeunes enfants et les aidais pour leurs devoirs, je réécrivais les expressions sous forme d’équations ou, une fois arrivés à ce stade, je réécrivais l’équation elle-même.
    Mais au lieu d’utiliser des choses comme x, j’employais des noms comme nuage moelleux, étoile, etc. Les enfants râlaient, mais restaient intéressés, et plus tard ils ont fait pareil pour aider leurs amis, paraît-il.
    Il est facile d’oublier ce que l’on ressent quand on découvre pour la première fois cette abstraction ; il était important de montrer que x n’a rien de spécial, et que cela pourrait aussi être soleil, ou une expression comme « nombre total de chats ».
    • Il y a un certain minimalisme dans la culture mathématique, et je comprends dans une certaine mesure qu’il soit utile de tout garder aussi court que possible quand on manipule et mélange des expressions.
      Mais une fois publié, la lisibilité devient vraiment mauvaise. On se retrouve dans des situations du genre : « il y a un terme qui joue un grand rôle dans cette formule, mais qu’est-ce qu’il signifie au juste ? Quelqu’un l’a appelé φ, donc impossible de savoir ».
      Je plaisante souvent en disant que si vous pensez que les programmeurs sont mauvais pour nommer les choses, il faut regarder les mathématiciens. Ils ont une étrange fierté à être incapables de nommer les choses.
      Le pire, ce sont les programmes directement dérivés d’articles de maths. Si une variable contient un coefficient de corrélation, appelez-la comme ça. Nous disposons de milliers d’années de langage et de symboles pour partager des idées ; ne les encodez pas pour appeler ça rho.
  • Je l’ai donné à ChatGPT. J’ai simplement téléversé l’image dans l’interface OpenAI de base, et je m’attendais à ce que le modèle reconnaisse déjà le problème et donne la réponse, hallucine une réponse, ou refuse carrément de le résoudre.
    Mais en pratique, voici ce qui s’est passé : https://chatgpt.com/share/682cce62-c53c-8003-be2c-2929395868...
    En résumé, le modèle propose avec assurance une valeur au jugé, la calcule, conclut qu’elle est fausse, puis réessaie encore et encore, répétant même les mêmes suppositions. Il n’a absolument pas reconnu la symétrie et s’est comporté comme un agent totalement dépourvu de structure.
    À la fin, il a affirmé avec force que ce puzzle n’avait pas de solution ; si le modèle se comporte aussi mal sur de futurs puzzles, je vais devoir revoir mes convictions.
    • Le résultat de Gemini est ici : https://g.co/gemini/share/ab287b25648f
      J’ai aussi demandé à ChatGPT o3, qui a réfléchi pendant 11,5 minutes : https://chatgpt.com/share/682d0993-db4c-8004-a66c-3908ef7203...
    • Impressionnant. Si l’on définit arbitrairement comme solution raisonnable « un nombre qu’un humain peut calculer ou comprendre mentalement », alors il n’y a clairement pas de solution raisonnable.
      N’existe-t-il pas une version de ChatGPT connectée à Wolfram Alpha ? Je me demande si cela a été essayé.
  • « Quelqu’un nommé Sridhar Ramesh » : Sridhar est une pointure à suivre. Les gens qui ont un doctorat en maths tout en ayant aussi un niveau doctoral en shitposting ne courent pas les rues.
  • J’aime beaucoup ce genre. J’ai commencé à l’appeler moi-même « Dantzig Sniping », et j’en ai aussi créé un : https://x.com/TheOisinMoran/status/1298305686082744320
    Plus de contexte et des exemples liés ici : https://x.com/TheOisinMoran/status/1299124512240398336
    • Je pensais que le nom venait de Gdańsk, c’est-à-dire Danzig, et je me demandais ce qui y avait été snipé.
    • Je me demande comment on découvre des problèmes ayant ce genre de propriété.
  • On est en 2025, pourquoi l’auteur n’utilise-t-il pas de vrais émojis de fruits comme noms de variables ?
    • Quand j’essaie de comprendre une base de code C complexe, remplacer les variables existantes par des émojis m’a souvent aidé.
      Il devient beaucoup plus facile de suivre où chaque variable est utilisée, et de percevoir d’un coup d’œil la structure pure du code. Un exemple que j’avais publié autrefois est ici : https://imgur.com/F27ZNfk
      Malheureusement, la plupart des langages modernes comme Rust et JS suivent les recommandations XID_Start/XID_Continue, dont la motivation ne me semble personnellement pas très solide, et excluent tous les caractères émojis des identifiants.
    • Voici une solution C# générée par Gemini, qui résout le problème en utilisant des variables avec des émojis de fruits. C’est probablement de la force brute : https://imgur.com/a/cC5QPH0
    • Cette année est bien 2025, mais l’année de création de ce langage n’est probablement pas 2025.
  • Si l’on remplace 4 par d’autres constantes, la plus petite solution peut devenir un nombre vraiment gigantesque : https://observablehq.com/@robinhouston/a-remarkable-diophant...
    • J’adore cette manière idiote mais grandiose de charger à la demande, dans un petit textarea, un nombre de 120 millions de chiffres.
  • Je me souviens du moment où ce problème est apparu pour la première fois. Tout le monde a éclaté de rire au séminaire de théorie des nombres.
  • J’aime bien qu’on aille creuser dans les profondeurs de la théorie des nombres et jusqu’à des graphes étranges, mais je ne vois pas ce qui, dans le puzzle original pommes/bananes, était censé être délicat ou trompeur.
    Y a-t-il un détail suffisamment facile à rater pour déclencher des disputes, ou est-ce simplement un problème assez facile pour que tout le monde se précipite pour faire le malin ?
    J’obtiens 10, 4, 2, mais peut-être que c’est moi qui me trompe.
    • Le « truc », c’est que dans le dernier groupe il n’y a que 3 bananes, alors que les autres groupes en ont 4. De même, dans la dernière expression, il n’y a qu’une seule noix de coco.
      Donc cela semble pouvoir s’interpréter comme 1 + 10 + 3.