Licence CC BY-NC-ND

Génération matérielle de nombres aléatoires

Publié :
Auteurs :

Catégorie :

Dans de nombreuses situations, il peut être utile de pouvoir générer des nombres totalement aléatoires. C'est très utile dans des applications cryptographiques, statistiques, mathématiques, et j'en passe. Ces applications sont le plus souvent logicielles, et cette génération de nombres aléatoire s'effectue avec divers algorithmes plus ou moins efficaces. Mais dans certaines situations, il arrive que l'on veuille créer ces nombres aléatoires de manière matérielle.

Cela peut servir pour sélectionner une ligne de cache à remplacer lors d'un cache miss, pour implémenter des circuits cryptographiques, pour calculer la durée d'émission sur un bus Ethernet à la suite d'une collision, et j'en passe. Mais comment créer une suite de nombres aléatoires avec des circuits ? C'est le but de ce tutoriel de vous expliquer comment !

Registres à décalage à rétroaction

La première solution consiste à utiliser des registres à décalages un peu spéciaux qu'on appelle des Feedback Shift Registers, abréviés LSFR. En français, ceux-ci sont appelés des registres à décalage à rétroaction. Ces registres sont des registres à décalage un peu bidouillés.

Pour rappel, un registre à décalage est un registre dont le contenu est décalé d'un cran vers la gauche (ou vers la droite) à chaque cycle d'horloge. Comme vous le savez, si le contenu de ce registre est décalé d'un cran vers la gauche, le bit de poids fort de ce registre est alors mit soit à 1, soit à zéro. Sur les registres à décalages normaux, ce bit de poids fort est rempli par une valeur par défaut après chaque décalage: que ce soit un 0 ou un 1, c'est toujours le même bit qui rentre par la gauche.

Mais dans les registres à décalage à rétroaction, le principe est modifié.

Deux types de LSFR

Pour commencer, il faut savoir qu'il existe deux types de registres à décalage à rétroaction :

  • les registres à décalage à rétroaction de Fibonacci ;
  • les registres à décalages à rétroaction de Gallois.

Dans ce qui va suivre, nous allons commencer par les registres à décalages à rétroaction de Fibonacci.

Registre à rétroaction de Fibonacci

Dans ceux-ci, le bit à faire rentrer à gauche change à chaque fois. Ce bit est calculé par un petit circuit combinatoire, qui est couplé au registre à décalage. Ce circuit combinatoire va prendre en entrée le contenu du registre à décalage, et va en déduire le bit à faire rentrer dedans. Ce circuit va donc utiliser tout ou partie des bits du registre à décalage et faire quelques opérations simples dessus pour déduire quel bit faire rentrer à gauche (ou à droite).

Ce circuit combinatoire possède quelques propriétés :

  • le résultat en sortie est un simple bit ;
  • ce résultat est déduit à partir de tout ou de certains bits de l'entrée ;

la fonction qui permet de calculer le bit en sortie est assez spéciale. Dans le cas le plus simple, on dit qu'elle est linéaire. Cette dernière propriété mérite quelques explications. Pour commencer, je tiens à préciser que nous allons nous concentrer uniquement sur les registres à rétroaction linéaire binaire.

Par linéaire, on veut dire que le bit de sortie se calcule à partir en multipliant les bits d'entrée par différents coefficients, et en additionnant le tout. En clair, ce bit de sortie se calcule par une formule du style :

$0 * a3 + 1 * a2 + 1 * a1 + 0 * a0$

Comme vous le voyez, chacun des bits du nombre est d'abord multiplié par un coefficient qui vaut zéro ou un. Ensuite, les résultats de ces multiplications sont tous additionnés, et on ne garde que le bit de poids faible. Cela revient à choisir certains bits du nombre (ceux dont le coefficient est 1, les autres étant simplement ignorés), à les additionner, et à ne garder que le bit de poids faible du résultat de l'addition.

Penchons-nous un peu sur cette addition qui ne garde que le bit de poids faible : je ne sais pas si vous avez remarqué, mais il s'agit ni plus ni moins que d'un calcul de parité paire. En effet, si on additionne N bits, le bit de poids faible vaut zéro pour un nombre pair, et 1 pour un nombre impair. Cette fameuse addition se résume donc en un simple calcul de parité.

Le circuit combinatoire chargé de calculer le bit de résultat est donc un circuit qui calcule la parité de la somme des bits choisis. Pour cela, il suffit d'effectuer une série de XOR entre tous les bits à additionner. Ce qui fait que ce circuit combinatoire est presque toujours composé de portes XOR.

C'est aussi simple que cela, notre circuit est composé de deux parties :

  • un registre à décalage ;
  • couplé à un circuit combinatoire composé de portes XOR.

Ce circuit de paye pas de mine, aussi il vaut mieux regarder celui-ci en fonctionnement :

Il existe une variante de ce genre de registre, qui modifie légèrement son fonctionnement. Il s'agit des registres à décalages à rétroaction affine. Avec ces registres, la fonction qui calcule le bit de résultat n'est pas linéaire, mais affine. En clair, ce bit de sortie se calcule par une formule du style :

$0 * a3 + 1 * a2 + 1 * a1 + 0 * a0 + 1$

Notez le + 1 à la fin de la formule : c'est la seule différence.

Avec ce genre de registre, le bit de résultat est donc calculé en faisant le calcul d'un bit d'imparité de certains (ou de la totalité) des bits du registre. Un tel circuit est donc composé de portes NXOR, comparé à son comparse linéaire, composé à partir de portes XOR.

Petite remarque : si je prends un registre à rétroaction linéaire dont la fonction est :

$0 * a3 + 1 * a2 + 1 * a1 + 0 * a0$

et un registre à rétroaction affine avec les mêmes coefficients sur les mêmes bits :

$( 0 * a3 + 1 * a2 + 1 * a1 + 0 * a0 ) + 1$

le résultat du premier sera égal à l'inverse de l'autre.

Registre à décalage à rétroaction de Gallois

Comme je l'ai dit plus haut, il existe un deuxième type de registres à décalage à rétroaction : les registres à décalage à rétroaction de Gallois. Ceux-ci sont un peu l'inverse des registres à décalages à rétroaction de Fibonacci. Dans ces derniers, on prenait plusieurs bits du registre à décalage pour en déduire un seul bit.

Avec les registres à décalage à rétroaction de Gallois, c'est l'inverse :

  • on prend le bit qui sort du nombre lors d'un décalage ;
  • et on en déduit plusieurs bits à partir d'un circuit combinatoire ;
  • et on fait rentrer ces bits à divers endroits bien choisis de notre registre à décalage.

Bien sûr, la fonction qui calcule des différents bits à partir du bit d'entrée conserve les mêmes propriétés que celle utilisée pour les registres à décalages à rétroaction linéaire : elle est affine ou linéaire, et se calcule avec uniquement des portes XOR pour les fonctions linéaires, ou NXOR pour les fonctions affines.

Aléatoire ?

Ce genre de circuit donne un résultat assez proche de l'aléatoire. Mais il ne s'agit pas de « vrai » aléatoire. C'est un fait : on peut prédire ce qui va sortir d'un de ces registres. En effet, il existe un « théorème » qui nous dit que la sortie d'un tel registre finit par faire des cycles. Mais il n'y a pas besoin de sortir tout un théorème pour comprendre pourquoi un tel circuit finit fatalement par se répéter.

On remarque qu'un tel circuit est déterministe : pour le même résultat en entrée, il donnera toujours le même résultat en sortie. De plus, notre circuit est un registre de n bits : il peut donc compter de 0 à (2^n) – 1. Lors de son fonctionnement, notre circuit finira donc par repasser par une valeur qu'il aura déjà parcourue, vu que le nombre de valeurs possible est fini. Une fois qu'il repassera par cette valeur, son fonctionnement se reproduira à l'identique comparé à son passage antérieur, vu que le circuit est déterministe.

Un tel registre finit donc par faire des cycles : tous les N cycles d'horloges, il effectuera un cycle. Ceci dit, si ce nombre N de cycle (sa période) est assez grand, le circuit donnera l'illusion de l'aléatoire. Son contenu semblera varier de manière totalement aléatoire, tant qu'on ne regarde pas durant longtemps. Il s'agit d'une approximation de l'aléatoire particulièrement bonne.

La période N dépend fortement de la fonction utilisée pour calculer le bit de sortie, des bits choisis, etc. Dans le meilleur des cas, le registre à décalage à rétroaction passera par presque toutes les $(2^n)$ valeurs que le registre peut prendre.

Si je dis presque toutes, c'est simplement qu'une valeur n'est pas possible : suivant le registre, le zéro ou sa valeur maximale sont interdits. Si un registre à rétroaction linéaire passe par zéro (ou sa valeur maximale), il y reste bloqué définitivement. Cela vient du fait que $x * An + Y * An-1 + … + Z * a0$ donne toujours zéro. Le même raisonnement peut être tenu pour les registres à rétroaction affine, sauf que cette fois-ci, le raisonnement ne marche qu'avec la valeur maximale stockable dans le registre.

Tout le chalenge consiste donc à trouver quels sont les registres à rétroaction dont la période est maximale : ceux dont la période vaut $(2^n) – 1$. Qu'on se rassure, quelle que soit la longueur du registre, il en existe au moins un : cela se prouve mathématiquement.

Et d'ailleurs, je ne résiste pas à vous donner quels bits choisir pour obtenir cette période maximale en fonction du nombre total de bits. Voici cette liste, pour des registres à décalage affines :

Bits Bits à choisir Période
2 2,1 3
3 3,2 7
4 4,3 15
5 5,3 31
6 6,5 63
7 7,6 127
8 8, 6, 5, 4 255
9 9,5 511
10 10,7 1023

Les plus curieux pourront compléter cette liste en allant regarder ce lien.

Variations sur les registres à décalage à rétroaction

Nos registres à décalage à rétroaction affine sont très intéressants. Mais un registre à décalage à rétroaction affine ou linéaire n'est pas forcément très fiable. Trouver des moyens plus efficaces pour produire des suites de nombres proches de l'aléatoire est parfois une nécessité. Aussi, diverses techniques permettent d'améliorer le fonctionnement de ces registres à décalages à rétroaction.

Registres à décalages à rétroaction non-affine

Il n'y a pas vraiment de raisons de changer une équipe qui gagne. Nos registres à décalages à rétroaction sont facilement prédictibles à cause de leur circuit combinatoire, qui calcule le bit à faire rentrer dans le registre : ce circuit est linéaire, ou affine. Pour rendre celui-ci plus imprévisible, on peut décider d'utiliser des circuits plus compliqués, non linéaires. La fonction appliquée au bit sur l'entrée est alors plus complexe, mais le jeu en vaut la chandelle.

Combinaisons

Autre solution : prendre plusieurs registres à décalages à rétroaction linéaires et utiliser leurs résultats. Avec cette technique, plusieurs registres à décalages à rétroaction sont reliés à un circuit combinatoire non-linéaire. Ce circuit prendra en entrée un (ou plusieurs) bit de chaque registre à décalage à rétroaction, et combinera ces bits pour fournir un bit de sortie. Un circuit conçu avec ce genre de méthode va fournir un bit à la fois. Les bits en sortie de ce circuit seront alors accumulés dans un registre à décalage normal, pour former un nombre aléatoire.

Problème : ces circuits ne sont pas totalement fiables. Ils peuvent produire plus de bits à 0 que de bits à 1, et des corrections sont nécessaires. Pour cela, ces circuits de production de nombres aléatoires sont souvent couplés à des circuits qui corrigent le flux de bits accumulé dans le registre pour l'aléatoiriser. Une solution consiste à simplement prendre plusieurs de ces circuits, et d'appliquer un XOR sur les bits fournis par ces circuits : on obtient alors un bit un peu moins biaisé, qu'on peut envoyer dans notre registre à décalage.

Il faut noter que seule une faible partie des bits de chaque registre à décalage est prise en compte par notre circuit combinatoire. Pratiquement, des circuits avec trop de bits en entrées sont difficilement concevables.

Une variante de cette technique consiste à prendre la totalité des bits d'un registre à décalage à rétroaction linéaire (ou affine), et à envoyer ces bits dans un circuit non-linéaire. La différence, c'est que dans ce cas, tous les bits du registre sont pris en compte.

Ces deux solutions peuvent être améliorées avec une astuce assez simple. Il est possible de cadencer nos registres à décalage à rétroaction linéaire à des fréquences différentes. Ainsi, le résultat fourni par notre circuit combinatoire est encore plus aléatoire. Cette technique est utilisée dans les générateurs stop-and-go, alternating step, et à shrinking.

Dans le premier, on utilise trois registres à décalages à rétroaction linéaire. Le bit fourni par le premier va servir à choisir lequel de deux restants sera utilisé.

Dans le générateur stop-and-go, on utilise deux registres à décalage à rétroaction. Le premier est relié à l'entrée d'horloge du second. Le bit de sortie du second est utilisé comme résultat. Une technique similaire était utilisée dans les processeurs VIA C3, pour l'implémentation de leurs instructions cryptographiques.

Dans le shrinking generator, deux registres à décalage à rétroaction sont cadencés à des vitesses différentes. Si le bit de sortie du premier vaut 1, alors le bit de sortie du second est utilisé comme résultat. Par contre, si le bit de sortie du premier vaut 0, aucun bit n'est fourni en sortie, et le bit de sortie du second registre est oublié.

Vrai aléatoire

Ceci dit, nos registres à décalage à rétroaction ne permettent pas d'obtenir du vrai aléatoire. Comme on l'a vu, leur comportement est totalement déterministe, prévisible. On est vraiment loin de l'aléatoire. Mais tout n'est pas perdu : il existe des moyens pour obtenir de l'aléatoire un peu plus crédible. Certains de ces moyens utilisent l'horloge des circuits électronique.

L'horloge nous vient en aide

Première solution : utiliser un simple compteur qui s'incrémente à chaque cycle d'horloge. Si on a besoin d'un nombre aléatoire, il suffit d'aller lire le contenu de ce registre, et de l'utiliser directement comme résultat. Si suffisamment de temps s'écoule entre deux demandes, et que le temps entre deux demandes est irrégulier, le résultat semblera bien aléatoire.

Autre solution, un peu plus fiable : utiliser la dérive de l'horloge. La vérité va vous paraître choquante, mais c'est un fait : un signal d'horloge n'est jamais vraiment très précis. Une horloge censée tourner à 1 Ghz ne tournera pas en permanence à 1Ghz exactement. Le signal d'horloge sera soumis à des variations de quelques Khz, voire moins, qui changeront la fréquence ce l'horloge.

Ces variations peuvent venir de variations aléatoires de température, des variations de tension, des perturbations électromagnétiques, ou à des phénomènes assez compliqués qui peuvent se produire dans tout circuit électrique (comme le shot noise).

L'idée consiste à prendre au moins deux horloges. On peut par exemple prendre deux horloges : une rapide, et une lente. On fait en sorte que la fréquence la plus élevée soit un multiple de l'autre. Par exemple, on peut choisir une fréquence de 1 Mhz et une autre de 100 Hz : la fréquence la plus grande est égale à 10000 fois l'autre. La dérive d'horloge fera alors son œuvre : les deux horloges se désynchroniseront en permanence, et cette désynchronisation peut être utilisée pour produire des nombres aléatoires.

Par exemple, on peut compter le nombre de cycles d'horloge produit par l'horloge rapide durant une période de l'horloge lente. Si ce nombre est pair, on produit un bit aléatoire qui vaut 1 sur la sortie du circuit. Pour information, c'est exactement cette technique qui était utilisée dans l'Intel 82802 Firmware Hub

La tension monte

Il existe d'autres solutions matérielles. Dans les solutions électroniques, il arrive souvent qu'on utilise le bruit thermique présent dans tous les circuits électroniques de l'univers. Tous nos circuits sont soumis à de microscopiques variations de température, dues à l'agitation thermique des atomes. Plus la température est élevée, plus les atomes qui composent les fils de nos circuits s'agitent. Vu que les particules d'un métal contiennent des charges électriques, ces vibrations font naître des variations de tensions assez infimes. Il suffit d'amplifier ces variations pour obtenir un résultat capable de représenter un zéro ou un 1.

C'est sur ce principe que fonctionne le circuit présent dans les processeurs Intel modernes. Comme vous le savez peut-être déjà, les processeurs Intel Haswell contiennent un circuit capable de générer des nombres aléatoires. Ces processeurs incorporent des instructions capables de fournir des nombres aléatoires, instructions utilisant le fameux circuit que je viens de mentionner.


16 commentaires

C'est marrant parce que j'ai du générer des nombres aléatoires en utilisant cette méthode y'a pas une semaine.. Et là pouf un article là dessus.

124813612512481361251248136125124813612512481371251249137125124913712512491371361249137136124913

+0 -0

Merci Mewtow. :)

J'ai réalisé le circuit en Python :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python3

def decToBin (x):
    y = str(bin(x).split('b')[1])
    while len(y) < 8: y = "0"+y
    return y

def xor (a,b):
    a,b = int(a), int(b)
    return 1 if (a or b) and (a != b) else 0

rand = ""
reg = [50,121]
for i in range(10000):
    ax = decToBin(reg[0])+decToBin(reg[1])
    d = xor(ax[10],xor(ax[12],xor(ax[13],ax[15])))
    reg[0] = int(str(d)+ax[0:7], 2)
    reg[1] = int(ax[7:15], 2)
    rand += str((reg[0]+reg[1]) % 256)+"."

print(rand)

Le système génère une très bonne entropie. :p

Tant de choses, tant de vies, tant de possibilités.

+0 -0
Staff

Tuto très intéressant ;) Dommage qu'on ne puisse pas générer autre chose que des nombres pseudo-aléatoires à partir des registres…

Deathekirl

Comme un ordinateur est un système parfaitement déterministe, c'est impossible d'avoir un générateur (vraiment) aléatoire. Tu auras toujours un test statistique qui montre que c'est pas un vrai générateur.

Ce n’est pas en répétant « Hom, Hom », qu’on démontre des théorèmes sérieux - Siegel Mon Twitter

+1 -0

Comme un ordinateur est un système parfaitement déterministe, c'est impossible d'avoir un générateur (vraiment) aléatoire. Tu auras toujours un test statistique qui montre que c'est pas un vrai générateur.

Holosmos

Mais les systèmes utilisant les parasites du réseau ou le bruit thermique ne sont pas déterministes eux?

Un jour j'irai vivre en Théorie, car en théorie tout se passe bien.

+2 -0

Mais les systèmes utilisant les parasites du réseau ou le bruit thermique ne sont pas déterministes eux?

Deathekirl

Je relève la phrase même si ça fait un peu longtemps maintenant..

Le problème quand tu utile les parasites du réseau c'est justement le réseau, si les données qui passe dedans ne sont pas aléatoire, tu te retrouve avec des bruits pseudo-aléatoire basé sur ton réseau.

Le bruit thermique présente le même problème.

En fait au jour d'aujourd'hui nous n'avons aucun moyen (du moins a ma connaissance) pour faire du vrai aléatoire. A chaque fois que nous analysons le système on se retrouve avec un effet déterministe. Même ton cerveau ne peut pas faire réellement de l'aléatoire.

J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source…

+0 -0

En fait au jour d'aujourd'hui nous n'avons aucun moyen (du moins a ma connaissance) pour faire du vrai aléatoire. A chaque fois que nous analysons le système on se retrouve avec un effet déterministe. Même ton cerveau ne peut pas faire réellement de l'aléatoire.

Sanoc

Mais alors qu'en est-il des phénomènes quantiques? Presque par définition, le quantique relève de l'indéterminisme ; ne pourrait-on donc pas générer de l'aléatoire?

Un jour j'irai vivre en Théorie, car en théorie tout se passe bien.

+0 -0
Staff

Mais les systèmes utilisant les parasites du réseau ou le bruit thermique ne sont pas déterministes eux?

Je ne suis pas certains que les bruits du réseau soient des effets quantiques. Est-ce que tu as une source sur l'origine de ces bruits ?

Mais alors qu'en est-il des phénomènes quantiques? Presque par définition, le quantique relève de l'indéterminisme ; ne pourrait-on donc pas générer de l'aléatoire?

Yup, ça permet de générer du "vrai" aléatoire. Par contre les contraintes sont assez différentes. Ça me paraît difficile de mettre de l'uranium ou des fentes d'Young dans une machine par exemple.

Ce n’est pas en répétant « Hom, Hom », qu’on démontre des théorèmes sérieux - Siegel Mon Twitter

+0 -0

Je ne suis pas certains que les bruits du réseau soient des effets quantiques. Est-ce que tu as une source sur l'origine de ces bruits ?

Holosmos

L'origine de ces bruits est tout simplement les signaux passant dans les câbles. Cela est très étudier en télécommunications ou nous essayons de réduire les bruits pour éviter les fluctuation des appareils environnant.

Les signaux locaux étant eux déterminer, le bruit est pseudo-aléatoire.

Yup, ça permet de générer du "vrai" aléatoire. Par contre les contraintes sont assez différentes. Ça me paraît difficile de mettre de l'uranium ou des fentes d'Young dans une machine par exemple.

Holosmos

L'uranium ne permet pas normalement de faire du vrai aléatoire, il a quand même des cycles de demi-vie (je ne suis plus sur du terme). Ce cycle de demi-vie implique un déterminisme.

Quant au fentes d'Young je ne sais pas exactement ce qu'elle implique, mais puisque ça revient a du phénomène ondulatoire ça devrais pouvoir ce déterminer… Je comprend pas trop ce qu'elle viennent faire ici pour dire vrai, y'a une application concrète a ces deux trous?

J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source…

+0 -0
Staff

L'uranium ne permet pas normalement de faire du vrai aléatoire, il a quand même des cycles de demi-vie (je ne suis plus sur du terme). Ce cycle de demi-vie implique un déterminisme.

Le moment de la désintégration est non-déterministe même si avec des quantités plus grandes d'atomes une sorte de déterminisme émerge (la fameuse demi-vie).

Quant au fentes d'Young je ne sais pas exactement ce qu'elle implique, mais puisque ça revient a du phénomène ondulatoire ça devrais pouvoir ce déterminer… Je comprend pas trop ce qu'elle viennent faire ici pour dire vrai, y'a une application concrète a ces deux trous?

Si tu fais passer les photons un à un, l'endroit où il vont frapper la plaque est aléatoire même si ça suit une certaine loi. Quand tu passes à un flux plus important de photons ça donne les franges.

En fait tu soulignes le fait que les mécanismes quantiques, lorsqu'ils sont aléatoires, ils le sont pour des échelles quantiques. Le déterminisme semble émerger quand on passe à une échelle macroscopique.

Ce n’est pas en répétant « Hom, Hom », qu’on démontre des théorèmes sérieux - Siegel Mon Twitter

+0 -0

En fait tu soulignes le fait que les mécanismes quantiques, lorsqu'ils sont aléatoires, ils le sont pour des échelles quantiques. Le déterminisme semble émerger quand on passe à une échelle macroscopique.

Holosmos

Mais du moment que l'on arrive a en ressortir une loi permettant de prévoir plus ou moins avec certitude le résultat c'est que c'est un système pseudo-aléatoire.

Le terme 'déterministe' est surement mal choisi et reflète mal mon idée, mais ce que je veut dire c'est que même si tes atomes ou photons on l'air de faire ce qu'ils veulent, ils suivent en réalité une loi. Cette loi est encore mal maitrisé et beaucoup de détail nous sont encore inconnu, mais on arrive déjà a la vérifié par la loi des grands nombre.

On parle ici de cas pseudo-aléatoire.

Mais alors qu'en est-il des phénomènes quantiques? Presque par définition, le quantique relève de l'indéterminisme ; ne pourrait-on donc pas générer de l'aléatoire?

Deathekirl

Je pense donc que la réponse a cette question est 'non', on ne peut générer que du pseudo-aléatoire. Car sur un grand nombre de lancé tu arrivera a deviner une demi-vie ou une franges ce qui n'est donc pas aléatoire.

J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source…

+0 -0
Staff

Mais du moment que l'on arrive a en ressortir une loi permettant de prévoir plus ou moins avec certitude le résultat c'est que c'est un système pseudo-aléatoire.

Par exemple pour les fentes d'Young tu as une distribution. Tu sais ce que ça va donner si tu donnes un flux importants d'électrons. En revanche il est impossible de prédire la position de chaque photon. Et ce n'est pas seulement un problème technique, on ne peut pas faire mieux.

Je pense donc que la réponse a cette question est 'non', on ne peut générer que du pseudo-aléatoire. Car sur un grand nombre de lancé tu arrivera a deviner une demi-vie ou une franges ce qui n'est donc pas aléatoire.

Non, être aléatoire c'est ne pas être déterministe. En revanche, tu peux très bien avoir une loi sur ta variable aléatoire, ça ne contredit en rien son non-déterminisme.

Ce n’est pas en répétant « Hom, Hom », qu’on démontre des théorèmes sérieux - Siegel Mon Twitter

+0 -0

Par exemple pour les fentes d'Young tu as une distribution. Tu sais ce que ça va donner si tu donnes un flux importants d'électrons. En revanche il est impossible de prédire la position de chaque photon. Et ce n'est pas seulement un problème technique, on ne peut pas faire mieux.

Holosmos

Je pense que notre désaccord ce situe ici en réalité. Je suis contre l'idée de penser que la science ne peut faire mieux.

Pour moi si une règle sort du tas, c'est que l'on arrive a prédire plus ou moins un résultat et que ça se vérifie sur la loi des grands nombre, les erreurs sont pour moi un manque de connaissance, on ne comprend pas encore un détail qui permet d'expliquer clairement chacun des cas, on ne comprend que l'ensemble.

Du moment que tu a une loi sur une variable pour moi c'est du déterminisme, c'est juste que tu ne comprend pas ce choix pour le moment.

En partant de ton hypothèse que l'on ne peut pas faire mieux on peut aussi dire que chaque chose que l'on ne comprend pas est aléatoire, ou bien que l'effet papillon n'existe pas…

Certes ces choses semble aléatoire car nous avons un esprit étroit qui ne nous permet pas de les comprendre, mais si on ouvre les yeux, à chaque fois nous avons réussis a démontrer le contraire avec le temps.

PS: Dans le futur on comprendra très bien l'uranium et les photons, tout comme on a compris que les électrons ne se balader pas aléatoirement ou que les éclair ne tomber pas par hasard.

Édité

J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source…

+0 -0
Staff

Je suis contre l'idée de penser que la science ne peut faire mieux.

Ce sont les expériences qui le confirment.

C'est normal que tu aies du mal à accepter l'idée. La mécanique quantique a fait scandal pendant pas mal d'années.

Ce n’est pas en répétant « Hom, Hom », qu’on démontre des théorèmes sérieux - Siegel Mon Twitter

+0 -0

C'est normal que tu aies du mal à accepter l'idée. La mécanique quantique a fait scandal pendant pas mal d'années.

Holosmos

Tout comme d'autre découverte on fait scandale avant elle. Le truc c'est que il y a toujours eu des gens qui pensent que l'on ne découvrira pas ce qui se cache derrière.

Enfin on s'éloigne du sujet de base, donc je vais vous laisser et aller travailler un peu =)

J’adorerais changer le monde, mais ils ne veulent pas me fournir le code source…

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte