Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
genalea_bbs [2012/03/20 09:43] tyrtamos |
genalea_bbs [2012/07/02 12:37] tyrtamos |
||
---|---|---|---|
Ligne 160: | Ligne 160: | ||
[1, 1, 6, 2, 7, 1, 1, 3, 7, 1, 0, 2, 2, 1, 1, 7, 1, 7, 0, 2, 6, 4, 1, 2, 4, 2, 6, 5, 6, 1, 3, 0, 4, 4, 5, 6, 6, 4, 4, 3, 4, 6, 7, 4, 3, 3, 5, 0, 2, 1] | [1, 1, 6, 2, 7, 1, 1, 3, 7, 1, 0, 2, 2, 1, 1, 7, 1, 7, 0, 2, 6, 4, 1, 2, 4, 2, 6, 5, 6, 1, 3, 0, 4, 4, 5, 6, 6, 4, 4, 3, 4, 6, 7, 4, 3, 3, 5, 0, 2, 1] | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Générateur d' | ||
+ | |||
+ | Comme on a souvent besoin d'un générateur d' | ||
+ | |||
+ | Sa seule contrainte est qu'il nécessitera que pnp, le produit des 2 nombres premiers, ait au moins 24 chiffres décimaux: cela permettra de créer l' | ||
+ | |||
+ | <code python> | ||
+ | def gen8bits_bbs(graine, | ||
+ | """ | ||
+ | | ||
+ | """ | ||
+ | while True: | ||
+ | graine = pow(graine, 2, pnp) | ||
+ | r = graine & 15 # récup des 4 bits inférieurs | ||
+ | graine = pow(graine, 2, pnp) | ||
+ | r |= (graine & 15)<< | ||
+ | yield int(r) # retourne l' | ||
+ | </ | ||
+ | |||
+ | Ce code est assez rapide: avec 2 nombres premiers de 512 bits, chaque nouvel octet ne demande que 6/100000 secondes! | ||
==== Générateur de nombres entiers de n bits au hasard ==== | ==== Générateur de nombres entiers de n bits au hasard ==== |