Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2967 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Algo de generation de nombres aleatoires ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Algo de generation de nombres aleatoires ?

n°307986
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:09:40  profilanswer
 

J'essaie de porter une appli ecrite en Borland C++ 3.1 vers Java. Cette appli fait beaucoup appel a des nombres aleatoires (srand() pas au hasard choisi puis random()), et il faudrait que je fasse en Java un petit generateur de nombres aleatoires qui suive exactement la meme logique que celui qui se trouve dans BC++ ... et evidemment, ce n'est pas le cas du Random() Java propose par defaut.
 
Est-ce aue quelqu'un connaitrait l'algo qui est utilise par les fonctions srand() et random() dans Borland C++ 3.1 ??

mood
Publicité
Posté le 12-02-2003 à 23:09:40  profilanswer
 

n°307990
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-02-2003 à 23:16:34  profilanswer
 

http://www.google.fr/search?q=rand [...] l=fr&meta=


---------------
J'ai un string dans l'array (Paris Hilton)
n°307995
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:21:52  profilanswer
 

Merci, mais je veux pas un générateur de nombres aléatoires (celui utilisé dans Java est décrit en clair), je veux celui de Borland C++ :sarcastic:  
 
PS : tiens, www.google.fr, je connaissais pas comme site, c'est pas mal :sarcastic:


Message édité par Gonzoide le 12-02-2003 à 23:23:01
n°308011
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-02-2003 à 23:30:57  profilanswer
 

tu prends softice et tu désassembles la fonction rand()  :kaola:  
pourquoi veux tu absolument l'algo de BC++ ???
un nombre aléatoire est un nombre aléatoire après tout !!
 
ça m'apprendra à rendre service tiens !!! :fou:


---------------
J'ai un string dans l'array (Paris Hilton)
n°308012
schnapsman​n
Zaford Beeblefect
Posté le 12-02-2003 à 23:32:47  profilanswer
 

Gonzoïde a écrit :

Merci, mais je veux pas un générateur de nombres aléatoires (celui utilisé dans Java est décrit en clair), je veux celui de Borland C++ :sarcastic:  
 
PS : tiens, www.google.fr, je connaissais pas comme site, c'est pas mal :sarcastic:


 
je sais que par le passé, borland donnait le code source des ces compilos et libs à ceux qui en faisaient la demande par courrier papier; RAV avec du GPL.
 
Sinon si tu veux vraiment apprendre quelque chose va voir là http://random.mat.sbg.ac.at/literature/
 
NB: prends un ton moins méprisant c'est plus sympa pour ceux qui répondent à tes questions  [:zebra33]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°308014
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:35:03  profilanswer
 

Harkonnen a écrit :

pourquoi veux tu absolument l'algo de BC++ ???
un nombre aléatoire est un nombre aléatoire après tout !!


 
L'appli a ete specifiquement concue pour etre compilee sous Borland (c'est degueu mais c'est comme ca), car elle s'est rendue dependante de la maniere dont les nombres aleatoires sont calcules. Si je veux generer les memes suites aleatoires en partant des memes racines, faut que je connaisse l'algo utilise dans BC++, c'est tout. En clair : je ne veux pas des nombres aléatoires, je veux les mêmes suites que celles utilisées dans l'appli ...
 

Harkonnen a écrit :

ça m'apprendra à rendre service tiens !!! :fou:


 
Ca t'apprendra surtout a claquer du www.google.fr sans avoir lu la question (je l'avais pourtant formulee precisement pour eviter ce genre de remarque ...)


Message édité par Gonzoide le 12-02-2003 à 23:35:58
n°308021
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:37:39  profilanswer
 


:jap:

SchnapsMann a écrit :

NB: prends un ton moins méprisant c'est plus sympa pour ceux qui répondent à tes questions  [:zebra33]


Ca me gonfle quand on repond "google" sans prendre le temps de reflechir deux secondes ...

n°308029
Mara's dad
Yes I can !
Posté le 12-02-2003 à 23:42:18  profilanswer
 

Heu, là Harko, t'exagère un peu !
 
La question de Gonzoïde était très claire dés le début.
 
Il n'a pas besoin d'un générateur quelconque, il à besoin d'un générateur bien particulier. Je ne sais pas si c'est pour faire une lotterie truquée :D, mais c'est pas le problème.
 
Si tu répond à coté de la question parce-que t'as mal lu, et si en plus tu lui balance un lien vers google, genre "c'est pas un moteur de recherche içi", faut pas t'étonner qu'il te renvoie la balle non ?
 
T'inquiète pas Gonzoïde, Harko est parti ce coucher. Il ne mord plus ce soir  :lol:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°308037
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:48:00  profilanswer
 

Mara's dad a écrit :

Heu, là Harko, t'exagère un peu !
 
La question de Gonzoïde était très claire dés le début.


 
Tiens, quelqu'un qui me comprend ... je commencais a avoir des doutes sur mon niveau en francais :D
 
Pis c'est pas pour une loterie c'est pour craquer le mot de passe du root de la NASA (et du FBI si j'ai le temps), qui comme chacun le sait tourne sur des serveurs Windows 3.11 -> d'ou le compilo C++ 16 bits des familles :D
 
(en fait c'est pour porter un jeu type "Elite", les nombres aleatoires servent a positionner des planetes, et forcement j'aimerais bien qu'elles correspondent a l'original, d'ou ma quete du generateur aleatoire qui va bien ...)


Message édité par Gonzoide le 12-02-2003 à 23:49:01
n°308042
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-02-2003 à 23:49:44  profilanswer
 

Gonzoide > pas de bol, meme si j'admets ne pas avoir tout lu, j'admets aussi que le site que tu détestes tant, tu sais, google (qui référence aussi les NG faudrait pas l'oublier), ben ce site m'a permis de trouver ce que tu cherches !
 
http://groups.google.com/groups?hl [...] fe0&rnum=3
 
juste l'algo que tu cherches ! on en fait des choses avec google dis moi...  :sarcastic:  
 
et ça m'a pris 10 secondes...
 
mara > un harko endormi mord toujours :d


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 12-02-2003 à 23:49:44  profilanswer
 

n°308045
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:53:34  profilanswer
 

Harkonnen a écrit :

Gonzoide > pas de bol, meme si j'admets ne pas avoir tout lu, j'admets aussi que le site que tu détestes tant, tu sais, google (qui référence aussi les NG faudrait pas l'oublier), ben ce site m'a permis de trouver ce que tu cherches !


:jap: j'avoue humblement ma defaite, je savais pas pour les NG dans Google (que j'aime beaucoup en passant)
 
PS : juste pour info, t'as donne quoi comme critere ? (parce que je me suis sincerement casse les dents sur Google -> pas mal de recherche et pas de resultat)

n°308046
Mara's dad
Yes I can !
Posté le 12-02-2003 à 23:53:43  profilanswer
 

Bon, ben j'suis bien content pour tout le monde.
 
Ca fait plaisir, encore un problème résolu.
 
Qui veux du Champagne ?
 
Pour moi, ce sera un t'ite bière de chez nos amis belges.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°308048
Gonzoide
Les cochons... dans l'espâââce
Posté le 12-02-2003 à 23:55:31  profilanswer
 

je serais pas contre une petite Guinness ...

n°308056
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-02-2003 à 23:58:53  profilanswer
 

Gonzoïde a écrit :

PS : juste pour info, t'as donne quoi comme critere ? (parce que je me suis sincerement casse les dents sur Google -> pas mal de recherche et pas de resultat)


http://harko.free.fr/images/google.PNG


---------------
J'ai un string dans l'array (Paris Hilton)
n°308063
Gonzoide
Les cochons... dans l'espâââce
Posté le 13-02-2003 à 00:05:47  profilanswer
 

ah ben c'est pour ca, les groupes google j'y ai jamais mis les pieds :(
 
Merci quand meme :)

n°308073
LeGreg
Posté le 13-02-2003 à 00:15:56  profilanswer
 

y'a pas les codes sources avec Borland ?
(vraie question c'est pas de la provoc, je dis ça pour
ceux qui sont nerveux)
 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°308076
schnapsman​n
Zaford Beeblefect
Posté le 13-02-2003 à 00:27:08  profilanswer
 

legreg a écrit :

y'a pas les codes sources avec Borland ?
(vraie question c'est pas de la provoc, je dis ça pour
ceux qui sont nerveux)
 
LeGreg


 
cf mon post
 
mais je ne sais pas s'il le font toujours


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°308082
Gonzoide
Les cochons... dans l'espâââce
Posté le 13-02-2003 à 00:37:20  profilanswer
 

legreg a écrit :

y'a pas les codes sources avec Borland ?
(vraie question c'est pas de la provoc, je dis ça pour
ceux qui sont nerveux)
 
LeGreg


 
Y'a pas besoin d'etre nerveux : le compilo est gratos en version 5.5, et le pire c'est que je l'ai meme pas encore downloade :D

n°308085
LeGreg
Posté le 13-02-2003 à 00:42:47  profilanswer
 

SchnapsMann a écrit :


cf mon post
mais je ne sais pas s'il le font toujours


 
chez Microsoft tu as les sources de toute la lib C
et C++ evidemment
je pense que c'est la moindre des choses chez un  
fournisseur de compilateur de livrer sa lib standard
(pour qu'on puisse savoir avec quoi l'on builde ses  
exécutables)
 

Code :
  1. int __cdecl rand (
  2.         void
  3.         )
  4. {
  5. #ifdef _MT
  6.         _ptiddata ptd = _getptd();
  7.         return( ((ptd->_holdrand = ptd->_holdrand * 214013L
  8.             + 2531011L) >> 16) & 0x7fff );
  9. #else  /* _MT */
  10.         return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
  11. #endif  /* _MT */
  12. }


 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°309068
Angel_Doog​las
Le dernier des humains
Posté le 14-02-2003 à 06:15:01  profilanswer
 

Gonzoïde a écrit :


(en fait c'est pour porter un jeu type "Elite", les nombres aleatoires servent a positionner des planetes, et forcement j'aimerais bien qu'elles correspondent a l'original, d'ou ma quete du generateur aleatoire qui va bien ...)


 
 :pfff:  


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°309723
Gonzoide
Les cochons... dans l'espâââce
Posté le 14-02-2003 à 16:56:31  profilanswer
 


 
Ben quoi :??: :??:
 

n°309956
Angel_Doog​las
Le dernier des humains
Posté le 14-02-2003 à 20:59:30  profilanswer
 

Aleatoire != predefini (mais je suppose qu'il sagit d'autre chose car je ne comprends toujours pas pourquoi il te faut celui la en particulier, sauf si tu as choisi un mauvais rand du style celui du c standard)


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°310170
Musaran
Cerveaulté
Posté le 15-02-2003 à 01:10:23  profilanswer
 

Pseudo-aléatoire.
 
Ça a tout du hasard pour le joueur, mais c'est reproductible pour le programme.
 
Tu n'a jamais eu un jeu ou selon la graine (seed) spécifiée au départ le décor était complètem différent ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°310191
Angel_Doog​las
Le dernier des humains
Posté le 15-02-2003 à 02:41:47  profilanswer
 

Ah, je n'avais pas vu ca sous cet angle de la graine fournie (et disponible? Le source est dispo?). Si c'est bien fait normalement la graine fournie n'est pas reproductible (exemple seed = time). D'ou des suites de nombres pseudo-aleatoires (avec des bons algos ce n'est plus pseudo-) totalement differentes et donc bel et bien aleatoires dans le principe. D'ou ma perplexite quand a l'utilite de rechercher strictement le meme generateur.


Message édité par Angel_Dooglas le 16-02-2003 à 00:58:39

---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°310432
Gonzoide
Les cochons... dans l'espâââce
Posté le 15-02-2003 à 18:16:25  profilanswer
 

Angel_Dooglas a écrit :

Ah, je n'avais pas vu ca sous cet angle de la graine fournie (et disponible? Le source est dispo?). Si c'est bien fait normalement la graine fournie n'est pas reproductible (exemple seed = time). D'ou des suites de nombres pseudo-aleatoires (avec des bons algos c'est plus pseudo-) totalement differentes et donc bel et bien aleatoires dans le principe. D'ou ma perplexite quand a l'utilite de rechercher strictement le meme generateur.


 
oui, graine fournie et code dispo -> je repete donc la meme sequence si j'utilise le meme algo (ce qui me manquait jusqu'a present)

n°310565
Angel_Doog​las
Le dernier des humains
Posté le 16-02-2003 à 01:00:35  profilanswer
 

Ils utilisent une graine "statique" (ou un tableau de valeurs fixees)?


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°310974
Gonzoide
Les cochons... dans l'espâââce
Posté le 16-02-2003 à 23:48:56  profilanswer
 

Ben en fait, c'est ni statique, ni tableau de valeurs fixees. C'est : pour creer les etoiles dans le systeme de coordonnees (x, y, z), initialise le generateur aleatoire par x*y*z :)

n°310984
Angel_Doog​las
Le dernier des humains
Posté le 17-02-2003 à 00:42:01  profilanswer
 

mmmh, je crois que j'aimerais bien jeter un oeil a ce code ca commence a m'intriguer, le x y z c'est fourni par l'utilisateur?


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°310992
Musaran
Cerveaulté
Posté le 17-02-2003 à 07:15:12  profilanswer
 

Angel_Dooglas a écrit :

(avec des bons algos ce n'est plus pseudo-)

Du moment que c'est calculé ça reste "pseudo", prédictible et reproductible.
 
Pour du "vrai" non-déterministe, il faut un dispositif spécial genre amplificateur de parasites.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°311200
Angel_Doog​las
Le dernier des humains
Posté le 17-02-2003 à 14:12:55  profilanswer
 

Quand on arrive a ce genre de resultat:

Citation :

# Far longer period and far higher order of equidistribution than any other implemented generators. (It is proved that the period is 2^19937-1, and 623-dimensional equidistribution property is assured.)


http://www.math.keio.ac.jp/~matumoto/emt.html
 
Pseudo devient facultatif dans la pratique courante.
Un amplificateur de parasites ne me parait pas specialement plus sur.


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°311202
Gonzoide
Les cochons... dans l'espâââce
Posté le 17-02-2003 à 14:16:07  profilanswer
 

Angel_Dooglas a écrit :

mmmh, je crois que j'aimerais bien jeter un oeil a ce code ca commence a m'intriguer, le x y z c'est fourni par l'utilisateur?


 
Ben non, c'est tout couillon: Y'a un systeme solaire par secteur, represente par ses coordoonnees x, y, z. Pour connaitre le contenu du secteur (x, y, z), tu initialises le generateur a x*y*z, puis tu generes:
 
type de l'etoile = random()
nombre de planetes = random()
pour chaque planete, type de planete = random(), nombre de lunes = random(), etc etc.
 
Tu fais ca pour chacun des secteurs que tu veux afficher a l'ecran, et voila.

n°313599
Musaran
Cerveaulté
Posté le 19-02-2003 à 23:09:10  profilanswer
 

Angel_Dooglas a écrit :

Quand on arrive a ce genre de resultat:

Citation :

# Far longer period and far higher order of equidistribution than any other implemented generators. (It is proved that the period is 2^19937-1, and 623-dimensional equidistribution property is assured.)


http://www.math.keio.ac.jp/~matumoto/emt.html
 
Pseudo devient facultatif dans la pratique courante.

Si tu l'initialise avec la même graine, il produit les mêmes résultats.
Il reste pseudo-aléatoire, ce qui ne veut pas dire mauvais.
 
Ce qui m'impressionne, c'est d'avoir une période de 2^19937-1 sans stocker un état de 2^19937 bits...
Je suppose qu'il stocke les quelques derniers résultats, et qu'il calcule de façon à ne pas retomber sur une configuration déjà donnée.
 
 

Citation :

Un amplificateur de parasites ne me parait pas specialement plus sur.

Un parasite, c'est une fluctuation non voulue.
Ces fluctuations infimes non voulues engendrent le vrai aléatoire en rendant impossible toute prévision par calcul, car incalculables.
Alors que le pseudo-aléatoire peut être prévu si l'on a l'algorithme et son état courant.
 
Des parasites amplifiés: la neige de la télé. Si ça c'est pas aléatoire...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°313617
LeGreg
Posté le 19-02-2003 à 23:25:08  profilanswer
 

Citation :

Des parasites amplifiés: la neige de la télé. Si ça c'est pas aléatoire...


 
si tu regardes bien, tu verras le visage de Jesus.
 
Si ca ce n'est pas la main de dieu..
 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°313631
Mara's dad
Yes I can !
Posté le 19-02-2003 à 23:42:10  profilanswer
 

Et comme Dieu ne joue pas aux dés, ce n'est donc pas aléatoire.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°313633
Taz
bisounours-codeur
Posté le 19-02-2003 à 23:44:25  profilanswer
 

Mara's dad a écrit :

Et comme Dieu ne joue pas aux dés, ce n'est donc pas aléatoire.

Citation :

"God is REAL, until explicitly declared INTEGER." Dijkstra

n°314196
Angel_Doog​las
Le dernier des humains
Posté le 20-02-2003 à 17:10:40  profilanswer
 

Musaran a écrit :

Si tu l'initialise avec la même graine, il produit les mêmes résultats.
Il reste pseudo-aléatoire, ce qui ne veut pas dire mauvais.
 
Ce qui m'impressionne, c'est d'avoir une période de 2^19937-1 sans stocker un état de 2^19937 bits...
Je suppose qu'il stocke les quelques derniers résultats, et qu'il calcule de façon à ne pas retomber sur une configuration déjà donnée.
 
 

Citation :

Un amplificateur de parasites ne me parait pas specialement plus sur.

Un parasite, c'est une fluctuation non voulue.
Ces fluctuations infimes non voulues engendrent le vrai aléatoire en rendant impossible toute prévision par calcul, car incalculables.
Alors que le pseudo-aléatoire peut être prévu si l'on a l'algorithme et son état courant.
 
Des parasites amplifiés: la neige de la télé. Si ça c'est pas aléatoire...


 
1/ Il ne faut jamais initialiser un generateur avec une graine "constante" d'un appel a l'autre. Toujours utiliser une graine (l'important etant que cela ne soit jamais la meme d'un appel a l'autre de maniere a ne "jamais" retomber sur la meme suite generee); comme je l'ai donne au dessus, l'astuce classique est d'employer la variable de temps comme graine. Quand au fonctionnement du Mersenne Twister, il faut lire l'article (le code est un *peu* chaud a etudier sans savoir ce qu'il fait).
 
2/Bien sur que les parasites c'est de la variable aleatoire  mais il n'y pas que cela qui compte: il faut faire aussi attention a la distribution de cette variable: Les phenomenes physiques/chimiques/biologiques suivent rarement des lois uniformes.


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°314356
schnapsman​n
Zaford Beeblefect
Posté le 20-02-2003 à 20:20:35  profilanswer
 

Mara's dad a écrit :

Et comme Dieu ne joue pas aux dés, ce n'est donc pas aléatoire.


 
prière de ne pas ressortir les conneries d'einstein :sarcastic:  
 
 
il a dit plein de trucs intelligents, pourquoi tjrs ressortir cette boulette?   :pfff:


Message édité par schnapsmann le 20-02-2003 à 20:20:59

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°314659
Mara's dad
Yes I can !
Posté le 21-02-2003 à 01:33:00  profilanswer
 

[Einstein]
C'est pas une boulette !
 
C'est de la remise en question.
 
Une attitude tout ce qu'il y a de plus louable pour un scientifique, non ?
 
Dans le même genre :
 
"If the facts don't fit the theory, change the facts."
 
A ne pas prendre au premier degrès non plus, hein  :D  
[/Einstein]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Algo de generation de nombres aleatoires ?

 

Sujets relatifs
[PHP] Génération d'image : comment faire ?Algo Tableau, occurence unique
Generation de terraingénération d'évenement en c
Un algo pas si simple...[VC++] Traitement d'une liste de Nombres
[Java] Génération d'un document XSL en Java RESOLU[Algo/C] Grande chaine de caractères pour test d'un algorithme
Génération d'une chaîne de caractèreComment obtenir des nombres aleatoires?
Plus de sujets relatifs à : Algo de generation de nombres aleatoires ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR