recherche Algorithme pseudo-aléatoire

4 réponses
Avatar
Dominik
Bonjour à tous,

Je dois définir en java un algorithme pseudo-aléatoire ayant les
caractéristiques suivantes :

A partir d'un initiateur :

1) Retourne un nombre entre 1 et 64 339 296 874 soit (35^7 - 1)
2) Ne retourne jamais deux fois le même nombre (un nombre consommé disparait
du set de réponses possibles)
(et ceci sans conserver en mémoire les nombres déjà consommés)
3) pouvoir repartir (suite à un marche/arret) au point où il en était (ou du
moins ne pas redonner des réponses déjà consommées).
4) pouvoir en générer un grand nombre rapidement (au moins 10 par seconde).

Et voilà ,
pour moi c'est pas simple.
Je pensais utiliser une base temps (genre nbre de dixieme-secondes depuis
une date) .
Dans ce cas on répond à la 2eme et 3eme contrainte mais pas à la
distribution aléatoire (une serie de réponse se ressemble trop (se suit en
fait))
enfin voilà,

si un "développeur"/"mathématicien"/"Ferma en herbe" avait une idée ce
serait merveilleux.

Dominique

4 réponses

Avatar
MacTotoche
Dominik wrote:
Bonjour à tous,

Je dois définir en java un algorithme pseudo-aléatoire ayant les
caractéristiques suivantes :

A partir d'un initiateur :

1) Retourne un nombre entre 1 et 64 339 296 874 soit (35^7 - 1)
2) Ne retourne jamais deux fois le même nombre (un nombre consommé disparait
du set de réponses possibles)
(et ceci sans conserver en mémoire les nombres déjà consommés)
3) pouvoir repartir (suite à un marche/arret) au point où il en était (ou du
moins ne pas redonner des réponses déjà consommées).
4) pouvoir en générer un grand nombre rapidement (au moins 10 par seconde).

Et voilà ,
pour moi c'est pas simple.
Je pensais utiliser une base temps (genre nbre de dixieme-secondes depuis
une date) .
Dans ce cas on répond à la 2eme et 3eme contrainte mais pas à la
distribution aléatoire (une serie de réponse se ressemble trop (se suit en
fait))
enfin voilà,

si un "développeur"/"mathématicien"/"Ferma en herbe" avait une idée ce
serait merveilleux.

Dominique

Hello,

Comme cette question n'a rien de Java, tu aurais sans doute plus de
chances sur un groupe d'algo comme fr.comp.algorithmes, je pense.

--
Olivier
This space for sale.

Avatar
Christophe Foucher
Dominik wrote:
Je dois définir en java un algorithme pseudo-aléatoire ayant les
caractéristiques suivantes :

A partir d'un initiateur :

1) Retourne un nombre entre 1 et 64 339 296 874 soit (35^7 - 1)
2) Ne retourne jamais deux fois le même nombre (un nombre consommé
disparait du set de réponses possibles)
(et ceci sans conserver en mémoire les nombres déjà consommés)
3) pouvoir repartir (suite à un marche/arret) au point où il en était (ou
du moins ne pas redonner des réponses déjà consommées).
4) pouvoir en générer un grand nombre rapidement (au moins 10 par
seconde).


Je crois que tu cherches le mouton à cinq pattes. Je ne suis pas
spécialiste en la matière, je crois qu'on ne connaît pas de fonction
pseudo-aléatoire sans répétition.

Christophe

Avatar
Dominik
n'est on pas à l'heure du tout transgénique et du maïs à gène de souris !!
D'autre part 5 membres n'est il pas l'attribut d'un mouton mâle ?

Plus sérieusement
les 35 premiers bits d'une dispersion MD5 d'un date.getTime() seraient - ils
une piste à poursuivre ?

Dominique
"mouton noir non reproductible dispersé"

"Christophe Foucher" a écrit dans le message news:
3f0eb583$0$5397$

Je crois que tu cherches le mouton à cinq pattes. Je ne suis pas
spécialiste en la matière, je crois qu'on ne connaît pas de fonction
pseudo-aléatoire sans répétition.

Christophe


Avatar
boulay_denis
Peux être que je me plante mais je ne pense pas que cela soit une bonne
solution. Prendre les 32 premiers bits d'un MD5 qui en contient 256 ne
peut pas te guarantir l'unicité du résultat.

Personnellement, je regarderais plus du coté de l'algorithme du hashcode
qui est très facilement adaptable pour retourner un long (plutot qu'un
int).

Bon courage
Denis


Dominik wrote:

n'est on pas à l'heure du tout transgénique et du maïs à gène de souris !!
D'autre part 5 membres n'est il pas l'attribut d'un mouton mâle ?

Plus sérieusement
les 35 premiers bits d'une dispersion MD5 d'un date.getTime() seraient - ils
une piste à poursuivre ?

Dominique
"mouton noir non reproductible dispersé"

"Christophe Foucher" a écrit dans le message news:
3f0eb583$0$5397$

Je crois que tu cherches le mouton à cinq pattes. Je ne suis pas
spécialiste en la matière, je crois qu'on ne connaît pas de fonction
pseudo-aléatoire sans répétition.

Christophe