Il s'agit de la commande ent qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
ent - test de séquence de nombres pseudo-aléatoires
SYNOPSIS
ent [options] [fichier]
DESCRIPTION
Logo ORL
ent effectue une variété de tests sur le flux d'octets dans filet (ou entrée standard si non
filet est spécifié) et produit une sortie sur la sortie standard ; par exemple:
Entropie = 7.980627 bits par caractère.
Une compression optimale réduirait la taille
de ce fichier de 51768 caractères par 0 pour cent.
La distribution du chi carré pour 51768 1542.26 échantillons est de XNUMX, et de manière aléatoire
dépasserait cette valeur 0.01 pour cent des fois.
La valeur moyenne arithmétique des octets de données est 125.93 (127.5 = aléatoire).
La valeur Monte Carlo pour Pi est 3.169834647 (erreur 0.90%).
Le coefficient de corrélation en série est de 0.004249 (totalement non corrélé = 0.0).
Les valeurs calculées sont les suivantes :
ENTROPIE
La densité d'information du contenu du fichier, exprimée en nombre de bits par
personnage. Les résultats ci-dessus, résultant du traitement d'un fichier image compressé avec
JPEG, indique que le fichier est extrêmement dense en informations, essentiellement aléatoire. D'où,
Il est peu probable que la compression du fichier réduise sa taille. En revanche, le code source C de
le programme a une entropie d'environ 4.9 bits par caractère, indiquant que l'optimum
la compression du fichier réduirait sa taille de 38 %. [Hamming, p. 104-108]
CARRÉ CHI TEST
Le test du chi carré est le test le plus couramment utilisé pour le caractère aléatoire des données, et est
extrêmement sensible aux erreurs dans les générateurs de séquences pseudo-aléatoires. Le chi carré
la distribution est calculée pour le flux d'octets dans le fichier et exprimée sous la forme d'un
nombre absolu et un pourcentage qui indique à quelle fréquence une séquence vraiment aléatoire
dépasserait la valeur calculée. Nous interprétons le pourcentage comme le degré auquel le
la séquence testée est suspectée d'être non aléatoire. Si le pourcentage est supérieur à 99 % ou
moins de 1%, la séquence n'est presque certainement pas aléatoire. Si le pourcentage est compris entre
99% et 95% ou entre 1% et 5%, la séquence est suspecte. Pourcentages compris entre 90 % et
95 %, 5 % et 10 % indiquent que la séquence est « presque suspecte ». Notez que notre fichier JPEG,
bien que très dense en informations, est loin d'être aléatoire comme le révèle le test du chi carré.
L'application de ce test à la sortie de divers générateurs de séquences pseudo-aléatoires est
intéressant. Les 8 bits de poids faible renvoyés par le standard Unix rand(1) fonction, pour
exemple, donne :
La distribution du chi carré pour 500000 0.01 échantillons est de XNUMX, et de manière aléatoire
dépasserait cette valeur 99.99 pour cent des fois.
Alors qu'un générateur amélioré [Park & Miller] rapporte :
La distribution du chi carré pour 500000 212.53 échantillons est de XNUMX, et de manière aléatoire
dépasserait cette valeur 95.00 pour cent des fois.
Ainsi, le générateur Unix standard (ou au moins les octets de poids faible qu'il renvoie) est
inacceptablement non aléatoire, tandis que le générateur amélioré est bien meilleur mais toujours
suffisamment non aléatoire pour susciter des inquiétudes pour les applications exigeantes. Contraste les deux
ces générateurs logiciels avec le résultat du chi carré d'une véritable séquence aléatoire créée
en chronométrant les événements de désintégration radioactive[1] :
La distribution du chi carré pour 32768 237.05 échantillons est de XNUMX, et de manière aléatoire
dépasserait cette valeur 75.00 pour cent des fois.
Voir [Knuth, pp. 35-40] pour plus d'informations sur le test du chi carré. Une chi-
calculateur carré[2] est disponible sur ce site.
ARITHMÉTIQUE SIGNIFIER
C'est simplement le résultat de la somme de tous les octets (bits si le -b option est spécifiée) dans
le fichier et en divisant par la longueur du fichier. Si les données sont proches du hasard, cela devrait être
environ 127.5 (0.5 pour -b sortie optionnelle). Si la moyenne s'écarte de cette valeur, les valeurs
sont constamment élevés ou faibles.
MONTE CARLO VALEURE POUR PI
Chaque séquence successive de six octets est utilisée comme coordonnées X et Y de 24 bits dans un
carré. Si la distance du point généré aléatoirement est inférieure au rayon d'un
cercle inscrit dans le carré, la séquence de six octets est considérée comme un "coup". Les
pourcentage de hits peut être utilisé pour calculer la valeur de Pi. Pour les très gros cours d'eau (ce
l'approximation converge très lentement), la valeur s'approchera de la valeur correcte de Pi si
la séquence est proche du hasard. Un fichier de 32768 octets créé par la désintégration radioactive a donné :
La valeur Monte Carlo pour Pi est 3.139648438 (erreur 0.06%).
SÉRIE CORRÉLATION COEFFICIENT
Cette quantité mesure dans quelle mesure chaque octet du fichier dépend du précédent
octet. Pour les séquences aléatoires, cette valeur (qui peut être positive ou négative) sera, de
bien sûr, être proche de zéro. Un flux d'octets non aléatoire tel qu'un programme C produira un
coefficient de corrélation de l'ordre de 0.5. Des données extrêmement prévisibles telles que non compressées
les bitmaps présenteront des coefficients de corrélation série approchant 1. Voir [Knuth, pp. 64-65]
pour plus de détails.
OPTIONS
-b L'entrée est traitée comme un flux de bits plutôt que d'octets de 8 bits. Statistiques
signalés reflètent les propriétés du flux binaire.
-c Affiche un tableau du nombre d'occurrences de chaque octet (ou bit, si le -b
est également spécifiée) valeur et la fraction du fichier global constitué par
cette valeur. Les caractères imprimables du jeu de caractères ISO-8859-1 (Latin-1) sont
affichés avec leurs valeurs en octets décimaux. En mode de sortie non laconique, les valeurs avec
aucune occurrence n'est imprimée.
-f Plier les majuscules en minuscules avant de calculer les statistiques. Le pliage est fait
basé sur le jeu de caractères ISO-8859-1 (Latin-1), avec des lettres accentuées correctement
traité.
-t Mode laconique : la sortie est écrite au format CSV (Comma Separated Value), adapté pour
chargement dans une feuille de calcul et lecture facile par n'importe quel langage de programmation. Voir laconique
Format de sortie de mode ci-dessous pour plus de détails.
-u Imprimer les informations sur les appels.
Utiliser ent en ligne en utilisant les services onworks.net