Welcome to EverybodyWiki 😃 ! Nuvola apps kgpg.png Log in or ➕👤 create an account to improve, watchlist or create an article like a 🏭 company page or a 👨👩 bio (yours ?)...

Pangramme autodescriptif

De EverybodyWiki Bios & Wiki

Un pangramme autodescriptif est une phrase contenant toutes les lettres de l'alphabet (pangramme) et exprimant une proposition vraie sur elle-même (autodescriptif, par exemple: sur le nombre de lettres qu'elle contient).

« Ce pangramme autodescriptif en hommage à Douglas Hofstadter, Lee Sallows, Jacques Pitrat, Nicolas Graner et Éric Angelini contient exactement dix-sept a, un b, onze c, huit d, trente-cinq e, cinq f, neuf g, six h, vingt-quatre i, deux j, un k, sept l, six m, vingt-six n, onze o, huit p, huit q, onze r, quinze s, vingt-sept t, dix-sept u, quatre v, deux w, neuf x, un y, et cinq z. »

— OuLiPo[1]

Algorithmes de génération d'un pangramme autodescriptif[modifier]

Cette section n’est pas rédigée dans un style encyclopédique. Améliorez sa rédaction !

Un pangramme autodescriptif peut être trouvé grâce à un algorithme.

Un programme rudimentaire pourra utiliser une table associant à chaque entier compris entre n et N l'écriture de cet entier en toutes lettres [*]. Il suffit alors que le programme enchaîne les séquences suivantes:

  • pour initier l'algorithme, tirer au hasard 26 entiers compris entre n et N (avec retirage possible des nombres déjà tirés), pour associer à chaque lettre de l'alphabet un nombre tiré au hasard,
  • d'inclure en toutes lettres dans la phrase du pangramme "contient exactement", puis cette suite d'associations "nombre lettre" trouvées (« douze a, deux b », etc.),
  • de dénombrer, pour l'ensemble de la phrase ainsi constituée, le nombre d'occurrences de chaque lettre,
  • de comparer ce dénombrement avec ce que dit la phrase elle-même (par exemple en mettant à jour la phrase avec le résultat trouvé et en la comparant avec le texte de la phrase précédente),
  • s'il n'y a pas conformité entre la description de la phrase et le nombre de caractères qui s'y trouve effectivement, de renouveler le dénombrement des caractères avec la dernière phrase constituée (3è étape ci-dessus) et de poursuivre le processus,
  • s'il y a conformité entre la description de la phrase et le nombre de caractères qui s'y trouve, imprimer le résultat et terminer.

Note [*]:

  • Choix pour n: Soit n = 1 pour un pangramme, c'est-à-dire une phrase dans laquelle toutes les lettres de l'alphabet sont présentes au moins une fois, ou bien n = 0 si l'on désire juste une phrase autodescriptive sans exiger que ce soit un pangramme, c'est-à-dire que toutes les lettres soient présentes.
  • Choix pour N: Par exemple N = 50. Par précaution, N devrait être de l'ordre d'un quart du nombre de caractères de la phrase qui sera trouvée. En effet, en français écrit, le lettre la plus courante, "e", peut représenter environ 16% d'un long texte, mais sensiblement plus pour une seule phrase).

Méthode empirique[modifier]

On peut ainsi tomber sur un point fixe : le résultat ne varie plus d'une itération à l'autre, et l'on a donc trouvé un pangramme autodescriptif.

Si l'on n'a pas trouvé de point fixe à la suite d'un nombre limite d'itérations programmé à priori (par exemple 1000 itérations), il se peut que l'on ait atteint un cycle répétitif. Le plus simple est alors de ré-initier automatiquement le programme en tirant à nouveau 26 autres valeurs et de relancer le processus. En laissant travailler l'ordinateur suffisamment longtemps, l'on va nécessairement finir par trouver un pangramme autodescriptif.

Méthodes plus performantes[modifier]

Slow-fast[modifier]

Il existe une méthode de détection de cycle qui se nomme méthode du slow-fast. Elle consiste grosso modo à faire le calcul en double à des vitesses différentes (le tableau A aura par exemple une itération par cycle et le tableau B deux itérations par cycle). Si à un moment quelconque A=B, cela signifie qu'à coup sûr on est entré dans un cycle.

Signatures[modifier]

On peut calculer pour chaque tableau que l'on obtient une signature (par exemple CRC ou MD5), et conserver à la fois tous les anciens tableaux et toutes les signatures associées. On ne procèdera à une comparaison réelle de tableaux que si leurs signatures sont identiques. Si les tableaux sont également identiques, alors on tire d'autres valeurs pour le calcul.

Cette méthode est plus rapide à mettre en place comme à exécuter que le slow-fast, surtout dans un langage qui comme le Perl possède l'adressage associatif (hashs). Elle consomme davantage de place en mémoire aussi, mais les mémoires actuelles d'un gigaoctet et plus ne rendent pas cette question aussi critique que par le passé.

Sa faiblesse par rapport à la méthode précédente est que le programme peut s'interrompre du fait de l'atteinte de la limite de mémoire. En contraste, la méthode Slow-Fast n'est limitée que par le temps que l'on se donne pour exécuter le programme.

Notes et références[modifier]

Liens externes[modifier]

  • Erreur Lua dans Module:Autorité à la ligne 424 : attempt to index field 'wikibase' (a nil value).
  • Erreur de script : la fonction « tout » n’existe pas.
  • Erreur Lua dans Module:Dictionnaires à la ligne 101 : attempt to index field 'wikibase' (a nil value).

Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).


Autres articles du thème Écriture écriture : , Scénariste, , , Livre universel, DreamAgo, Jeanne Le Fèze

Autres articles du thème Mathématiques mathématiques : Olivier Papleux, Un mathématicien aux prises avec le siècle, Calcul relationnel, Florentin Smarandache, Pierre Mialet, Modèle de similarité textuelle, Mérouane Debbah


Cet Article wiki "Pangramme autodescriptif" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques et/ou la page Edithistory:Pangramme autodescriptif.