2012 : le "jeu de l'année"
Défi : écrire tous les entiers de 1 à 100 en utilisant dans l'ordre les chiffres 2, 0, 1, 2 ainsi que les opérations algébriques classiques ?
En ce dimanche matin, je reprend l'idée de mathforum.org en vous proposant en français le "Jeu de l'année". Le principe du jeu reprends le principe de l'énigme des quatre quatres : écrire tous les entiers de 1 à 100 avec les chiffres de 2012 et les opérations mathématiques classiques.
Dans le détail, les règles sont les suivantes :
- Utiliser une fois (et une seule fois) les quatre chiffres 2, 0, 1 et 2. Dans l'ordre, c'est encore mieux !
- Utiliser les opérations mathématiques classiques : addition (+), soustraction/opposé (-), multiplication (×), division (/). On peut également utiliser les racines carrées (√), l'exponentiation (puissance) (^) et les factorielles (!), ainsi que les parenthèses/crochets.
- Il est permis de concaténer les chiffres de base entre eux (pour obtenir des nombres comme 20 ou 12), ou avec le point décimal (pour écrire les nombres .2, .01 ou 1.2).
Avec toutes ces règles, beaucoup de nombres restent inaccessible, d'où la nécessite d'ajouter plus de symboles. Ainsi, vous pouvez :
- Utiliser la double factorielle (n!!) : la double factorielle d'un nombre n est le produit de tous les entiers congrus à n modulo 2. Par exemple, 6!! = 6×4×2 = 48 et 5!! = 5×3×1 = 15.
- Utiliser la triple factorielle (n!!!) : même principe que la double factorielle, mais en ne gardant que les entiers congrus à 3 modulo n. En exemple, cela donne 7!!! = 7×4×1 = 28 et 8!!! = 8×5×2 = 80.
- Utiliser la n-ième factorielle (n!k). Cependant, le nombre k doit être construit proprement.
- Utiliser les racines k-ième (k√n), avec k construit proprement.
- Utiliser la fonction Gamma (Γ), défini sur les entiers par Γ(n)=(n-1)!
- Utiliser le développement décimal périodique des rationnels. Ainsi, on peut écrire .[2] pour écrire le nombre 0.2222... (=2/9) ou 2.0[1] pour le nombre 2.0111111... (=181/90).
Quelques remarques supplémentaires :
- Il est tout à fait légal d'imbriquer ses factorielles ou ses racines carrées (par exemple, (3!)! est permis).
- N'oublions pas que 0!=1.
- Le point décimal ou le développement décimal périodique ne s'utilise qu'avec les chiffres de base. Il est interdit d'écrire .(1+2) pour écrire .3. De même, .[0!] pour désigner le nombre .111... n'est pas autorisé.
- La fonction inverse n'est pas permise. On peut cependant utiliser le chiffre 1 pour écrire 1/n ou n^(-1). De la même façon, les fonctions "carré" ou "cube" ne sont pas autorisée, sauf en utilisant l'exponentiation pour écrire n^2 ou n^(1+2).
- Pas de fonction altérant l'intégrité des nombres ! Donc, pas de fonctions transcendantes (exp, cos, sin, tan, log, argcotanh, ...), ni de parties entières / parties fractionnaires.
- Dans un premier temps, on va éviter d'utiliser les fonctions combinatoires (nombres d'arrangements, de dérangements, de combinaisons avec/sans répétitions....) ou les fonctions arithmétiques (partage d'un entier, etc.)
Il est maintenant l'heure de jouer ! Pour cela, il faut se munir d'un stylo, d'une feuille de papier et de suffisamment de temps (par exemple, dans le bus, dans la salle d'attente de son ophtalmo, pendant son cours de philo, pendant un exposé très long et très ennuyeux, ...), et de chercher activement comment diable on pourrait écrire le nombre 87, ainsi que tous les autres.
Pour ajouter un peu de piment, je propose un système de points, le but étant d'avoir le plus petit nombre de point. Pour rester dans l'esprit du problème original, certaines solutions sont meilleures que d'autre : il faut éviter de désordonner les chiffres ou de les concaténer. Dans la pratique, pour chaque nombre, on gagne des points pour :
- Utilisation de +, -, ×, /, √, ^ ou ! : 0 points.
- Utilisation du point décimal : 1 point par utilisation
- Utilisation de concaténation : 10 points.
- Chiffres désordonnés : 50 points.
- Utilisation de multifactorielles, de racine n-ième : 5 points par utilisation.
- Utilisation de développement décimal périodique, de la fonction gamma : 30 points par utilisation.
- Nombre non trouvé : 500 points.
Exemple avec le nombre 42 : On peut l'écrire :
42 = 21×2+0 rapporte 60 points, car les chiffres sont désordonnés (50 points), et le nombre 21 a été obtenu par concaténation (10 points).
42 = ((2+0!)!)!!-(1+2)! rapporte 5 points, dus à l'utilisation de la double factorielle.
Le score total étant la somme du score de chacun des 100 nombres à reconstituer.
Maintenant, c'est à vous de jouer !
A l'heure où je poste cet article, mon score est de 4782 (en comptant les 6 nombres non découverts), à vous de le battre et de faire moins !
Commentaires sur 2012 : le "jeu de l'année"
- et ma soirée, alors ?Pour une fois que je voulais rester peinard ce soir, je tombe sur ce jeu ... Caramba, encore raté ...
Bon je suis tout fier d'avoir 0 points de 1 à 10, et 240 points pour les 45 formules trouvées jusqu'ici, en n'utilisant que des chiffres dans l'ordre, mais je sens que la suite va être (nettement) plus pénible...
Question sur la concaténation : "20+12", ça fait 10 points ou 20 ?
Et autre question : tes "multifactorielles" !!, !!! etc, elles ont une définition mathématique ailleurs qu'ici ? Je ne connaissais pas ... - Dr Goulu > Zut, pour moi, le 10 me coûte un point. Faut que j'améliore ça !
Pour 20+12, je considère que ça ne fait que 10 points.
Les multifactorielles sont évoquées sur wikipédia (http://en.wikipedia.org/wiki/Factorial#Multifactorials), et apparaissent en particulier dans les intégrales de Wallis et dans certaines valeurs de la fonction Gamma. - Le Python se rapproche...Bon, j'espérais finir ce soir, mais y'a eu un bug...
Profitez bien de vos stylos encore quelques heures, car l'algo qui tue progresse...
J'ai pas encore implémenté les racines, Gamma, les décimales périodique, et les fonctions monadiques (factorielles) ne s’emboîtent pas encore, mais voilà mes 100 scores actuels :
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 1, 0, 5, 0, 10, 1, 6, 0, 1, 0, 0, 0, 0, 1, 51, 1, 51, 0, 51, 51, 1, 0, 50, 10, 51, 1, 51, 10, 60, 60, 6, 5, 55, 0, 0, 1, 3, 2, 500, 7, 57, 5, 500, 1, 51, 0, 51, 1, 50, 0, 50, 500, 500, 500, 500, 52, 500, 10, 500, 57, 6, 57, 500, 6, 55, 2, 55, 6, 500, 500, 500, 500, 500, 57, 500, 6, 500, 500, 500, 1, 11, 2, 1, 1, 1, 1] total 10262
plus que 18 nombres à générer, et même s'ils coûteront 100 points en moyenne, ça ferait un score de 10262-18*400= 3062
L'optimisme, ça conserve... - 2916[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 5, 0, 5, 1, 5, 0, 6, 0, 0, 0, 0, 1, 30, 1, 32, 1, 11, 1, 1, 0, 50, 5, 35, 1, 51, 5, 6, 60, 5, 5, 5, 0, 0, 2, 3, 2, 6, 5, 31, 5, 35, 1, 51, 0, 51, 1, 11, 0, 50, 10, 500, 15, 65, 1, 51, 1, 85, 1, 6, 57, 90, 6, 30, 5, 30, 6, 30, 30, 6, 81, 30, 57, 56, 6, 56, 500, 500, 5, 6, 5, 1, 1, 1, 1]
il ne me manque que 67, 92 et 93.
Mais j'ai pas encore implémenté Gamma, et je peux encore "récurser plus profond" ...
On est d'accord que [.x] = x/9, donc que [.9]=1 ? - 2293C'est mon dernier mot. J'ai trouvé le 92 : ((2-((sqrt((0!/[.1]))!)!!))*(-2)) voir http://www.wolframalpha.com/input/?i=%28%282-%28%28sqrt%28%280%21%2F%5B1%2F9%5D%29%29%21%29%21%21%29%29*%28-2%29%29
Liste des scores : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 5, 0, 5, 1, 5, 0, 6, 0, 0, 0, 0, 1, 30, 1, 31, 1, 11, 1, 1, 0, 50, 5, 35, 1, 51, 5, 6, 35, 5, 5, 5, 0, 0, 2, 3, 2, 6, 5, 31, 5, 35, 1, 31, 0, 31, 1, 11, 0, 50, 10, 500, 15, 65, 1, 30, 1, 31, 1, 6, 57, 90, 6, 30, 5, 30, 6, 30, 30, 6, 90, 30, 50, 56, 6, 37, 35, 500, 5, 6, 5, 1, 1, 1, 1]
Le 67 et le 93 résistent au point que je serais tenté par un mot qui me répugne : impossible....
Alors pendant que j'écris un article avec les résultats (en les vérifiant...) et sur comment j'ai fait et pourquoi ça sert à rien de proposer le problème l'année prochaine, je relance le Python avec une récursion d'enfer, au cas où... - Héhé ! Le 92, je l'avais trouvé sans lancer de Python ! (la formule que j'ai trouvé ressemble d'ailleurs pas mal à la tienne !) Mes scores du moment : http://p3.storage.canalblog.com/38/76/210892/72021884.pdf (100% méthodes artisanales, avec une calculatrice, un tableur et du temps).
Pour ce qui est de 67 et 93, ils sont peut-être aussi tordu que le 73 de l'énigme des quatre quatres ( http://p0.storage.canalblog.com/01/53/210892/19900605.png ). La question est alors : quelle opération ajouter pour les obtenir ? - soluce !voilà il y a tout sous http://drgoulu.com/2012/01/18/jeu-de-lannee-2012-et-autres-cest-fini/
J'ai trouvé une petite bulle dans le comptage des points en écrivant l'article, je la corrige dès que.
Ce serait plus grave si il y avait une bulle dans un formule, j'en ai vérifié certaines par cut&paste dans Wolfram Alpha, mais il ne supporte pas les !!! et en plus, il faut que je dorme... - 67 = ((((0!/.2)!!)-[.1])/[.2])j'avais fait un gros bug : je n'explorais pas toutes les permutations possibles ! C'est visible dans mes résultats qui commencent tous par 2...
En le corrigeant j'ai trouvé 67, et amélioré beaucoup d'autres scores. Total actuel (et définitif? ) = 1900 seulement !
Soluce mise à jour sur http://drgoulu.com/2012/01/18/jeu-de-lannee-2012-et-autres-cest-fini/
(désolé...) - 88 = (22!((sqrt((0!/[.1]))!)!!!))'Celle là est gratinée au point qu'ElJj s'y est perdu (et moi aussi au début) En gros c'est la seule de mes solutions>/a> qui utilise la k-ième factorielle, et pas des moindres puisqu'on parle ici de la 18ème !
88=22!18=22*4
le 18 est obtenu par (3!)!!! = 6!!! = 18
Je sais pas comment mon stupide programme a pu "penser" à un truc pareil...
- Bien joué pour le 67 mais ça fait beaucoup de points quand même !
67 = ((((0!/.2)!!)-[.1])/[.2]) ->> 116 pts
Ya moins cher :
67 = (((.2^(-0!))!!)-[.1])/[.2]) ->> 61 pts !
Pareil pour 88 d'ailleurs, perso j'avais 88 = (.2^(-0!))!!!/.[1]-2 soit 36 pts (au lieu de 100!).
(Je poste le même commentaire sur le site de Dr. Goulu) - mise à jourZoïd a effectivement trouvé des solutions que mon programme ne générait pas, chapeau bas !
Après correction, le programme est devenu affreusement lent (environ 10 mins de calcul contre 1 avant) mais génère les solutions de Zoïd, voire mieux, puisque mon total est désormais (définitivement?) de 1637 points.
A part ça Jean-Paul Delahaye avait parlé dans "Bricoles, babioles... et surprises numériques !", Pour la Science - n° 373 - Novembre 2008, d'un problème similaire au "jeu de l'année", les Nombres de Friedman, dont on trouve une liste ici. Je vais dresser mon Python pour qu'il trouve les "super Friedman" en utilisant notre jeu d'opérations plutôt que seulement +-*/.
A bientôt pour de nouvelles aventures! - liensOn peut pas mettre de tags href pour faire des liens dans tes commentaires, ElJj ? Bon alors voilà ceux du commentaire précédent cutpastés :
http://fr.wikipedia.org/wiki/Nombre_de_Friedman
http://www2.lifl.fr/~delahaye/pls/2008/175
http://www2.stetson.edu/~efriedma/mathmagic/0800.html










