Hasard

Publié le par Kiasev

En informatique, tout est programmation, il faut expliquer à l'ordinateur comment il doit procéder pour chacune de ses taches. Il ne connait que les ordres précis : "choisir un nombre entre 1 et 4" n'est pas comprehensible pour lui, il ne saura pas choisir, il lui faut une règle. (et oui c'est tres bête un ordinateur !)
Ainsi, même quand on veut générer une suite de nombre aléatoires... on est obligé de faire un programme et d'expliquer comment prendre au hasard... et je vous laisse imaginer combien c'est difficile !
Ce qui fait que rien n'est vraiment du hasard, on parle de générateur de nombres pseudo-aléatoires.

A quoi cela sert-il ?
En particulier pour tout ce qui est codage de données (cryptographie), donc c'est tres sensible et doit être le plus sécurisé possible.

Alors comment faire ?
Un petit programme de base, se contentera de prendre l'heure et la date à laquelle on lui a demandé un nombre aléatoire, multiplier la dizaine des secondes par le jour, diviser par la vitesse du processeur et ajouter la place qu'il reste sur le disque C... et hop on obtient un nombre aléatoire... mais qu'on aurait pu trouver relativement facilement donc qui n'a rien d'hasardeux ! (Et c'est tres mauvais de pouvoir deviner facilement comment on a obtenu le nombre, le code serait facile à décoder et tout le monde aurait accès aux secrets de la CIA !)

Des programmes plus perfectionnés vont utiliser les suites de Fibonacci (plutôt que de simples additions et multiplications), ou bien d'autres propriétés mathématiques, qu'ils vont combiner avec des propriétés plus aléatoires et surtout non prévisibles de la machine sur laquelle le programme tourne (temps entre deux acces au disque, taille de la mémoire vive, mouvement du pointeur de la souris, ...).
Le résultat est encore traité par une autre méthode (table de hachage, c'est un peu compliqué, si il y en a que ca interresse dites moi et je vous l'explique dans un autre article : le principe c'est que c'est pas parce qu'on a le résultat final et le nombre qu'on a donné au départ pour l'obtenir qu'on peut deviner ce qui s'est passé entre les deux !)

Et si on veut un nombre plus petit que 12 par exemple ?
pas de probleme, on peut (par exemple) utiliser le modulo, qezaco ?
Un petit outil mathématique tres simple celui ci !

0 modulo 12 =0
1 modulo 12 =1
2 modulo 12 =2
...
11 modulo 12 = 11
12 modulo 12  = 0
13 modulo 12 = 1
14 modulo 12 = 2
...
23 modulo 12 = 11
24 modulo 12 = 0
...

Ainsi tous les nombres modulo 12 sont entre 0 et 12 (exclus).

pour trouver à quoi correspond la modulo, il suffit de faire la division entière, le reste de la division est le modulo :

par exemple : 2458 modulo 12 = 10

2458 = 12 * 204  +10
Donc on peut avoir facilement des nombres dans l'intervalle que l'on souhaite !

si on veut un nombre plus petit que 50, on lancera notre générateur, puis on appliquera au resultat le modulo 50
Si on veut un nombre entre  50 et 90 : on a un intervalle de 40 entre les deux... donc on choisit un nombre plus petit que 40 et on ajoute 50...(le minimum du modulo me donne 0 et le maximum 39, si j'ajoute 50 : j'obtiens minimum 50 et maximum 89)
exemple :
mon pseudo generateur me donne 5825
je lui applique le modulo 40 : cela donne 25 (5825 = 40 * 145 +25)
j'ajoute 50 : j'obtiendrais 75 qui est bien compris entre 50 et 90...
pratique non ?

On verra le monde secret de la cryptographie, dans un prochain article :)

Publié dans Informatique

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
K
Merci, merci. Et bien, un sujet de discussion avec mes amis profs de maths (car pour la petite histoire, il faut savoir que j' en connais un groupe complet depuis la cité U et ils ne sont pas forcément du même avis ). Penses-tu que les idées mathématiques sont innées, selon les thèses rationnalistes, ou acquises à postériori, selon les thèses de l'empirisme par l'observation du monde !
Répondre
K
J'avoue avoir toujours eu un peu de mal à accepter la théorie selon laquelle toutes les connaissances sont innées, mais malheureusement oubliées, et qu'on se contente de les retrouver.... Comment expliquer les erreurs ?
K
Le hasard est une notion digne d\\\'intérêt. Quand, je lance un dé, si je pouvais mettre en équation sa position dans ma main, son orientation, la direction du lancer, sa force, et tous les autres paramètres, je pourrais gagner des fortunes au 421 sans faillir. Si bien que l\\\'on peut considérer que l\\\'illusion du hasard ne procède que de l\\\'impossibilité de déterminer les causes. A considérer que le hasard existe, et puisque les choses du monde sont soumises aux règles du déterminisme et que l\\\'histoire du monde n\\\'est qu\\\'une succession de causes et de conséquences depuis l\\\'origine des temps, il faut introduire, la notion de Liberté, tout simplement, ce qui permet à l\\\'être humain d\\\'agir sur la matière de façon aléatoire et ainsi de détourner le cours des choses. Peut-être que cette Liberté n\\\'est aussi qu\\\'une illusion de plus pour les pauvres fous que nous sommes. Il paraitrait qu\\\'il existe une potentialité de hasard au niveau quantique, et sachant que le cerveau est un organe électrique, certains biologistes associent la Liberté humaine au caractère aléatoire de certaines particules.Hey Hey, ton blog est bigrement intérêssant , je vais m\\\'y attarder !
Répondre
K
Jolie théorie... ! Et si les physiciens quantiques s'étaient trompés, et avaient attribué au hasard ce qu'ils ne savaient expliquer alors notre libre arbitre ne serait qu'illusion et tout aurait été écrit dès le départ ? Quelle tristesse !Le cerveau est un grand mystère, et le restera surement encore longtemps, on ne peut pas, pour le moment du moins, le resumer à un organe électrique régit par des lois physiques classiques... Bienvenue Kimberley, reviens quand tu veux, surtout si tu as d'autres théories de ce genre, c'est passionnant : mélanger la philosophie et la science :)
E
ArghJe voulais dire 2 et 16, évidemment ;-)Le bianire et l'hexa sont utiles pour expliquer la programmation (enfin nous, c'est des automates, mebon) ;-)
Répondre
K
j'avais compris ne t'inquitete pas :) (d'ailleurs j'ai essayé d'expliquer tout ca ici aussi, mais ca devait pas trop être compréhensible, les lecteurs ont eu peur !)
E
Oulala !Déjà que je galère à faire comprendre les bases (2 et 12) à mes élèves, heureusement que ça n'est pas au programme, ils seraient capables de tout mélanger !C'est très intéressant, ton site, bravo !
Répondre
K
ah l'enseignement... pas évident de faire comprendre ce qui nous parait facile et qui ne l'est pas pour tout le monde :)
F
J'attends ton article sur la cryptologie avec impatience...
Répondre
K
je le mets en ligne demain... mais tu risques d'être décu, c'est un petit aperçu de l'historique... enfin viendra rapidement celui qui parlera de la crytpo actuelle, promis !