Étape 5: « Vrai » Randomness
Beaucoup de fonctions « aléatoire » est en fait tout sauf aléatoire : ils faire défiler une liste de résultats arithmétiques basé sur les résultats antérieurs. Cela signifie que si la valeur de départ est le même, le deuxième, le troisième et ainsi de suite les valeurs seront également identiques. Pour résoudre ce problème, l’heure est souvent utilisé comme point de départ, il n’est jamais la même.
Si vous utilisez le codage pour un microcontrôleur. Ils n’ont pas une horloge en cours. Si elles sont réinitialisées, ils commencent à partir des valeurs par défaut. Bien sûr, vous pouvez utiliser le point de temps de la presse bouton comme une source de données aléatoires, mais pour faire cette temporisateurs doit s’exécuter, et donc la consommation d’énergie est élevée relative.
Dans mon approche, une LED est utilisée comme une source de données aléatoires. Les LED sont sensibles à la lumière et de générer, si non alimentés, une petite tension. La grande chose est que cette tension est extrêmement sensible aux variations de température, radioactivité naturelle et d’autres sources de bruit. Ces légères variations peuvent être détectées avec l’ADC de la Attiny, résultant en un dernier morceau presque au hasard. Je dis « presque » parce que le 1 ou le 0 est un peu plus, surtout sur de courtes périodes de temps.
Même juste cette légère non aléatoire est perceptible. Donc je n’utilise que bruit « aléatoire » comme les semences (valeur de début) d’une fonction mathématique « aléatoire ». J’ai compté les épreuves individuelles (voir liste ci-dessus). Le résultat correspond assez bien à la probabilité set de 40 % de rouge, vert de 40 % et 20 % de jaune.
Pour encore plus aléatoire la valeur de la fonction de maths et de nouvelles valeurs de bruit aléatoire pourraient être fusionnés. Je ne sais pas comment le faire correctement, mais si vous le faites, s’il vous plaît laisser une suggestion dans les commentaires.