Simulating Keystroke and Computing the Theoretical Probability of Infinite Monkey Theorem with Markov Process
Yi, Zhou, Jiang
The Infinite Monkey Theorem states that if one monkey randomly hits the keys in front of a typewriter keyboard during an infinite amount of time, any works written by William Shakespeare will almost surely be typed out at the end of the total text. Due to the seemingly low chance of typing the exact literature works, our group are motivated to find out the expected time the Hamlet, our target text, being typed out by simulated random typing on a standard keyboard. For finding the answer, 30 users randomly typed characters into a file. Then, the frequency of each characters occurred following the previous character is calculated. This conditional probability is used to build the Markov matrix by considering all 128 times 128 cases. Finally, the expected time we estimated is about 10 to the power of 34 (min), which is surprisingly lower than the theoretical computation, and not achievable at all even in the cosmic time.
academic
Simulation de Frappe au Clavier et Calcul de la Probabilité Théorique du Théorème du Singe Infini avec Processus de Markov
Le théorème du singe infini stipule que si un singe tape aléatoirement sur le clavier d'une machine à écrire pendant un temps infini, il produira presque certainement n'importe quelle œuvre de Shakespeare. Cette étude estime expérimentalement le temps d'attente nécessaire pour produire Hamlet par frappe aléatoire. Les chercheurs ont collecté des données de frappe aléatoire auprès de 30 volontaires, calculé les probabilités conditionnelles entre caractères et construit une matrice de Markov 128×128. L'étude révèle que le temps d'attente attendu pour produire correctement les 78 premiers caractères d'Hamlet est d'environ 10^134 minutes (environ 1,41533×10^117 fois l'âge de l'univers), un résultat bien que légèrement inférieur aux calculs théoriques basés sur l'hypothèse d'indépendance, reste complètement irréalisable.
Cette étude vise à quantifier une question spécifique du théorème du singe infini : Quelle est la probabilité et le temps d'attente attendu pour produire le texte complet d'Hamlet de Shakespeare par frappe aléatoire ?
Valeur théorique : Le théorème du singe infini est une expérience de pensée classique en théorie des probabilités, mais manque d'estimations empiriques basées sur le comportement réel de frappe humaine
Valeur pédagogique : Aide le public à comprendre les événements de probabilité extrêmement faible et la signification pratique des probabilités mathématiques
Innovation méthodologique : Explore la faisabilité d'appliquer les chaînes de Markov au calcul des probabilités de génération de séquences de caractères
Hypothèse d'équiprobabilité indépendante : Les méthodes traditionnelles supposent que chaque caractère est indépendant et équiprobable, ce qui ne correspond pas au comportement réel de frappe
Manque de données empiriques : L'expérience réelle avec des singes à l'Université de Plymouth en 2002 a montré que la situation réelle est bien plus complexe (les singes ont uniquement produit de nombreux "S" et endommagé le clavier)
Négligence des dépendances entre caractères : Les méthodes de simulation existantes n'ont pas suffisamment considéré les relations de dépendance entre caractères causées par la disposition du clavier et les habitudes de frappe
Inspirés par l'approche de probabilité graphique (graph likelihood approach), les chercheurs ont reconnu que les caractères sur le clavier présentent une dépendance spatiale—après avoir appuyé sur un caractère, il est plus probable d'appuyer sur les caractères adjacents. Par conséquent, ils proposent d'utiliser un modèle de chaîne de Markov pour simuler plus fidèlement le processus de frappe aléatoire.
Construction d'une matrice de transition de Markov basée sur des données de frappe réelles : Collecte d'échantillons de frappe aléatoire auprès de 30 volontaires (environ 100 000 caractères), calcul des probabilités de transition conditionnelle entre caractères, établissement d'une matrice de Markov 128×128
Proposition d'un schéma de stockage en nombres rationnels : Face aux limitations de précision des nombres flottants en Python (environ 10^-16), adoption d'une méthode de stockage séparé numérateur-dénominateur pour les nombres rationnels, permettant le calcul de probabilités extrêmement faibles (jusqu'à 10^-134)
Implémentation d'une géovisualisation des fréquences de frappe au clavier : Utilisation d'ArcGIS et GeoPandas pour créer des cartes thermiques du clavier, montrant intuitivement les modèles de distribution spatiale de la frappe aléatoire humaine
Fourniture d'une preuve théorique de convergence de la chaîne de Markov : Basée sur le théorème de Bolzano-Weierstrass et le principe de contraction de Banach, preuve de la convergence de la matrice de Markov
Estimation quantitative des résultats : Calcul réussi de la probabilité de produire les 78 premiers caractères d'Hamlet par frappe aléatoire à 10^-134, correspondant à un temps d'attente attendu de 10^134 minutes
Entrée : Séquence de frappe aléatoire sur un clavier de machine à écrire standard (LG Rog Strix Flare) Sortie : Probabilité et temps d'attente attendu pour produire correctement le texte complet d'Hamlet de Shakespeare Contraintes :
Utilisation d'un clavier standardisé (suppression des touches de fonction, conservation des touches de caractères)
Basé sur des données de comportement de frappe humaine réelle
Considération des relations de dépendance de Markov entre caractères
Version simplifiée : uniquement 26 lettres minuscules (ASCII 97-122)
Version réaliste : toutes les touches de caractères courantes (ASCII 32-126 et saut de ligne 10)
Utilisation du logiciel ARMOURY CRATE pour désactiver les fonctions des touches de fonction
Protocole expérimental (pour chaque participant) :
Yeux bandés pendant la frappe
Chaque session de frappe dure 150 secondes (production attendue de 1200-1500 caractères)
Chaque participant complète 4 tâches de frappe (2 versions simplifiées, 2 versions réalistes)
Total collecté : 30×4=120 sous-échantillons
Méthode de calcul des fréquences :
Caractères ordinaires : cumul direct du nombre d'occurrences
Caps Lock : estimation par détection de modèles de casse consécutifs (par exemple, séquences "minuscule-majuscule-majuscule" ou "majuscule-minuscule-minuscule")
Touche Shift : détection par changements de casse de caractères adjacents, allocation de fréquence selon le ratio de longueur des touches Shift gauche/droite (5,01:6,17)
Pour implémenter une marche aléatoire pondérée, la matrice de probabilité de transition est convertie en matrice CDF :
Si,v=∑u=0iPu,v
où S127,v=1 (satisfaisant la propriété CDF).
Traitement d'entierisation :
Multiplication de la matrice CDF par 1018 pour la convertir en matrice d'entiers S~, facilitant les calculs ultérieurs :
S~i,v=Si,v×1018
Génération de caractères ultérieurs (pseudocode) :
Étant donné le caractère précédent v (valeur ASCII) :
1. Localiser la ligne v de la matrice de transition
2. Générer un entier aléatoire k ∈ [1, 10^18] en utilisant Python randint()
3. Trouver l'indice de colonne minimum m tel que S[m,v] ≥ k/10^18
4. Retourner le caractère avec valeur ASCII m
Pour une séquence de texte cible c1c2...cn (par exemple, Hamlet) :
P(seˊquence)=P(c1)×∏i=2nP(ci∣ci−1)
où :
P(c1)=1/26 (distribution uniforme du premier caractère)
P(ci∣ci−1) est interrogée à partir de la matrice de Markov
Implémentation en nombres rationnels :
Chaque probabilité est stockée sous forme de paire (numérateur, dénominateur), évitant la perte de précision des nombres flottants :
Distinction par rapport aux méthodes traditionnelles : Sous l'hypothèse traditionnelle d'indépendance et d'équiprobabilité, la probabilité d'une courte séquence d'Hamlet est :
Pindeˊpendant=(951)n
Cette méthode considère la dépendance entre caractères :
PMarkov=261×∏i=2nP(ci∣ci−1)
Justification : La disposition spatiale du clavier rend les touches adjacentes plus susceptibles d'être appuyées consécutivement, conforme au comportement de frappe inconscient humain
Défi : La probabilité d'un mot de 5 caractères atteint déjà 10^-7, dépassant la précision des nombres flottants Python au-delà de 10 caractères Innovation : Utilisation tout au long du calcul en nombres rationnels, maintenant la capacité de calcul exact
Bien que l'article ne présente pas d'expériences de comparaison de méthodes strictes, il mentionne dans la revue de littérature les références de comparaison :
Modèle d'indépendance et d'équiprobabilité : Hypothèse que chaque caractère est indépendant et équiprobable (1/95)
Algorithmes évolutionnaires : Optimisation adaptative de la distribution des fréquences de caractères par "hérédité"
Méthode de probabilité graphique : Reformulation du problème comme probabilité de génération de graphe
ArcGIS/ArcMap : Création de fichiers de forme de clavier (.shp)
GeoPandas : Fusion des données de fréquence avec les formes géographiques
Calcul de la matrice de Markov :
# Exemple de pseudocode
for each sample file:
for i in range(1, len(text)):
prev_char = text[i-1]
curr_char = text[i]
transition_count[prev_char][curr_char] += 1
# Normalisation en probabilités
for v in all_chars:
total = sum(transition_count[v])
for u in all_chars:
P[u][v] = transition_count[v][u] / total
Besoin en taille d'échantillon : 100 000 caractères sont loin d'être suffisants pour remplir les 16 384 probabilités de transition
Impact de l'hypothèse du premier caractère : L'adoption d'une distribution uniforme (1/26) pour le premier caractère a un impact limité sur la probabilité finale
Nécessité de la méthode des nombres rationnels : Les nombres flottants deviennent inefficaces après le 10e caractère
Préférence pour le centre du clavier : Tendance à frapper les touches centrales lors de frappe aléatoire
Dépendance spatiale existante mais limitée : La probabilité conditionnelle des touches adjacentes est légèrement plus élevée, mais l'effet est moins important que prévu
Influence du contexte culturel : 25/30 participants sont des locuteurs natifs du chinois, ce qui peut influencer les habitudes de frappe
Avantage limité du modèle de Markov : Bien que considérant la dépendance, la parcimonie de la matrice limite en fait la longueur de séquence calculable
Potentiel supérieur du modèle d'indépendance : Bien que moins précis, le modèle d'indépendance peut au moins fournir une estimation complète pour les longues séquences
Extrême petitesse de la probabilité : La probabilité de produire les 78 premiers caractères d'Hamlet par frappe aléatoire est d'environ 10^-134, la probabilité du texte complet étant bien inférieure
Inaccessibilité du temps : Le temps d'attente attendu est de 10^134 minutes, environ 10^117 fois l'âge de l'univers, complètement irréalisable
Limitations du modèle de Markov : Bien que théoriquement plus justifié, le problème de matrice creuse limite son applicabilité pratique
Modèles de frappe humaine : Préférence pour le centre du clavier, mais dépendance spatiale moins forte que prévu
Problème fatal de parcimonie : La méthode centrale échoue à atteindre l'objectif cible (calcul de la probabilité d'Hamlet complet) en raison de données insuffisantes
Hypothèse du premier caractère non vérifiée : L'hypothèse de distribution uniforme manque de validation empirique
Dépendance spatiale adjacente insuffisamment exploitée : Bien que proposant l'hypothèse de dépendance spatiale, la structure géométrique du clavier n'est pas explicitement modélisée
Expression trompeuse de "plus bas" : Le résumé affirme que les résultats sont "surprisingly lower than theoretical computation", mais 10^134 reste un nombre astronomique, et la comparaison avec les valeurs théoriques est impossible en raison de la parcimonie
Valeur pratique limitée : La probabilité des 78 premiers caractères offre une aide limitée à la compréhension du théorème complet
Algorithme de comptage Caps Lock grossier : L'estimation basée sur les modèles de casse consécutifs peut avoir des erreurs importantes
Méthode d'allocation Shift simplifiée : L'allocation selon le ratio de longueur ignore les habitudes réelles d'utilisation (les dactylographes droitiers peuvent préférer utiliser Shift gauche)
Cet article est une recherche ambitieuse mais présentant des défauts fondamentaux dans l'exécution. Les chercheurs ont tenté d'améliorer l'estimation probabiliste du théorème du singe infini en utilisant des données réelles et un modèle de Markov, une idée intrinsèquement innovante. Cependant, un échantillon de 100 000 caractères est loin d'être suffisant pour soutenir la modélisation d'une matrice de transition 128×128, entraînant l'impossibilité d'atteindre l'objectif principal (calcul de la probabilité d'Hamlet complet), aboutissant uniquement à un résultat pour les 78 premiers caractères.
La plus grande valeur de l'article réside dans la présentation honnête des difficultés rencontrées lors du processus de recherche, y compris les problèmes de matrice creuse et les défis de précision numérique, ce qui a une valeur d'avertissement pour les chercheurs ultérieurs. Les cartes thermiques du clavier et la méthode de calcul en nombres rationnels sont des points forts, mais ne peuvent pas compenser les problèmes fondamentaux de la méthodologie.
Pour que la recherche soit véritablement précieuse, il faudrait :
Augmenter la taille d'échantillon d'au moins 100 fois (atteindre le niveau de dizaines de millions de caractères)
Utiliser des techniques de lissage pour traiter les probabilités zéro
Effectuer une comparaison quantitative rigoureuse avec le modèle d'indépendance
Clarifier explicitement la portée d'application de la méthode (séquences courtes)
En résumé, ceci est une tentative exploratoire bénéfique, mais reste à distance d'un travail académique mature.