Comment puis-je déterminer le caractère aléatoire statistique d'une chaîne binaire? Ergo, comment puis-je coder mon propre test, et retourner une seule valeur qui correspond au hasard statistique, une valeur entre 0 et 1.0 (0 étant aléatoire, 1.0 étant aléatoire)?Comment puis-je déterminer le caractère aléatoire statistique d'une chaîne binaire?
Le test devrait fonctionner sur des chaînes binaires de toute taille.
Lorsque vous le faites avec un stylo et du papier, vous pouvez explorer des chaînes comme ceci:
0 (aléatoire arbitraire, le seul autre choix est 1)
00 (pas au hasard, sa répétition et matchs la taille)
01 (mieux, deux valeurs différentes)
010 (moins aléatoire, palindrome)
011 (moins aléatoires, plus de 1, encore acceptable)
0101 (moins aléatoire, motif)
0100 (meilleurs, moins chers, mais toute autre distribution provoque des motifs)
Exemples de cas:
Taille: 1, Possibilités: 2
0: 1,0 (aléatoire)
1: 1,0 (aléatoire)
Taille: 2, P: 4
00:?
01: 1.0 (aléatoire)
10: 1,0 (aléatoire)
11:
S: 3, P: 8
000:? non aléatoire
001: 1,0 (aléatoire)
010:? moins aléatoire
011: 1.0 (aléatoire)
100: 1,0 (aléatoire)
101: moins aléatoire
110 1,0 (aléatoire)
111:? non aléatoire
Et ainsi de suite.Je pense que cela peut jouer un rôle important dans la rupture de la chaîne dans toutes les sous-chaînes possibles et la comparaison des fréquences, mais il semble que ce genre de travail de fond aurait déjà dû être fait dans les débuts de l'informatique. Il semble que vous ayez un tas d'heuristiques pour l'aléatoire.
une chaîne binaire unique peut être considérée comme étant aléatoire! Vous avez besoin d'un espace d'échantillon dans lequel le comparer ... –
qu'est-ce que vous voulez vraiment faire? –
Juste cela: lire dans une chaîne binaire arbitraire, et notez son caractère statistique aléatoire. Par exemple, 0101010101010101 a un nombre équilibré de 1 et de 0, mais n'est guère aléatoire. On pourrait dire que: [00000000 a un caractère aléatoire de 0] [01010101 a un caractère aléatoire de 0,01] [00000101 a un caractère aléatoire de 0,05] [01001011 a un caractère aléatoire de 1,0] – Tim