Tirage plus aléatoire [Résolu]

MaxSoldier 289 Messages postés dimanche 10 août 2003Date d'inscription 28 février 2009 Dernière intervention - 14 déc. 2006 à 20:51 - Dernière réponse : MaxSoldier 289 Messages postés dimanche 10 août 2003Date d'inscription 28 février 2009 Dernière intervention
- 16 déc. 2006 à 14:08
Bonjours, je code actuellement un moteur de Particules et j'ai besoin d'un tirage aléatoire étendu et rapide.

La classe Random donne un tirage assez étendu mais seulement après beaucoup de tirages à blanc, et donc ca prend du temps...
Quand je dis tirage a blanc j'entend :

            for (int i = 0; i < iMax; i++)
            {
                Rnd.NextDouble();
            }

 Connaissez vous d'autre méthode pour générer un nombre aléatoire ?
Merci d'avance +++

-=Ar$£nik=-
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 15 déc. 2006 à 07:40
3
Merci
Salut,
A mon avis, tu vas te heurter à des problèmes mathématiques assez grand là
La fonction doit être déjà passablement performante, et la recoder soit-même (en mieux) me paraît assez compliqué pour un résultat qui risque d'être mitigé.
Eventuellement si trouve déjà qqch de tout fait sur le net....

-Blog-

Merci cs_Bidou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Meilleure réponse
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 15 déc. 2006 à 10:33
3
Merci
Si tu dois recoder une fonction "random", ce n'est pas très compliqué, de nombreuses formules simples et efficaces existent (à base de suites et de modulos), cherches dans des cours de math sur le net tu devrais trouver ton bonheur.

Par contre j'ai du mal a comprendre ce que tu entend par "tirage étendu" ? Qu'attend tu comme résultats ?

Merci Nikoui 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de Nikoui
Meilleure réponse
MaxSoldier 289 Messages postés dimanche 10 août 2003Date d'inscription 28 février 2009 Dernière intervention - 16 déc. 2006 à 14:08
3
Merci
Non c'est bon, j'ai trouvé, pour ceux que ça interesse c'est la suite suivante :
Xn = (X(n-24) + X(n-55)) mod iMax

C'est tirée de la suite de Fibonacci ( encore et toujours cette même suite ), j'ai choisi 24 et 55 car c'est avec ces 2 valeurs que la période est la plus grande et que la suite possède des propriété interessante ( c'est l'aléa le plus grand possible pour cette suite notamment... )

-=Ar$£nik=-

Merci MaxSoldier 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de MaxSoldier
MaxSoldier 289 Messages postés dimanche 10 août 2003Date d'inscription 28 février 2009 Dernière intervention - 15 déc. 2006 à 19:33
0
Merci
Lorsque je parle de tirage étendu, j'entend par là 2 choses :
- Une probabilité faible de deux tirages égaux ( ce qui est loin d'être les cas avec Random )
- Un domaine de tirages moins restreint, avec Random le domaine de tirage ressemble plus ou moins à une fonction gaussienne mais avec un écart relatif très faible ( je suis plus matheux qu'autre chose désolé ), j'aimerais un sigma plus grand.

( Quelle clarté, non sérieusement, c'est la définition mathématique, ya pas vraiment d'autres moyens pour expliquer ce que je veux dire )

++
-=Ar$£nik=-
Commenter la réponse de MaxSoldier
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 16 déc. 2006 à 11:58
0
Merci
Salut,

As tu regarder du côté de RNGCryptoServiceProvider ?

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.