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

  FORUM HardWare.fr
  Programmation
  Algo

  nombre aleatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

nombre aleatoire

n°1266275
ford_escor​t
Posté le 14-12-2005 à 12:47:49  profilanswer
 

Bonjour
est ce que qq un connait un algo qui permet de faire un tirage aleatoire homogene sur la surface d une sphere
merci

mood
Publicité
Posté le 14-12-2005 à 12:47:49  profilanswer
 

n°1266604
fra0
Posté le 14-12-2005 à 17:43:41  profilanswer
 

Paul Bourke

n°1266644
ford_escor​t
Posté le 14-12-2005 à 18:40:01  profilanswer
 

et?

n°1266669
fra0
Posté le 14-12-2005 à 18:56:15  profilanswer
 

et google,
 
répéter N fois :
 
tirer trois nombres au hasard entre -1 et 1, appellons les x,y et z.
si x²+y²+z² est inférieur ou égal à 1 alors
diviser x,y et z par la racine carrée de (x²+y²+z²) sinon relancer le tirage.

n°1267460
ford_escor​t
Posté le 15-12-2005 à 15:43:34  profilanswer
 

C'est beaucoup trop long comme methode et en prenant le x²+y²+z² <=1 j aurai aussi des points dans la sphere

n°1267572
fra0
Posté le 15-12-2005 à 16:06:12  profilanswer
 

ben non (aux erreurs d'arrondi près)
car tu normalises ton vecteur (tu le divises par un scalaire <=1.0 donc tu l'aggrandis juste ce qu'il faut)
 
quelles sont tes contraintes au juste ?

n°1267591
souk
Tourist
Posté le 15-12-2005 à 16:13:40  profilanswer
 

et avec deux nombres aleatoire phi et teta compris entre 0 et 2 Pi, tu as un point sur la sphere (en utilisant des coordonnées spheriques quoi) ? [:petrus75]
 
(en plus comme ca, tu es sur d'avoir une distribution homogene, je sais pas pourquoi, mais le coup de la somme des carrés ne m'inspire pas confiance en terme de distribution homogene sur la surface de la sphere (j'en suis pas sur, mais vu que diviser par la racine carrée de la somme revient a faire une projection du cube sur la sphere, je me dis que c'est pas homogène [:dawa] ) )

n°1267600
fra0
Posté le 15-12-2005 à 16:18:21  profilanswer
 

la distribution est uniforme avec ma méthode, le tout  c'est d'ignorer les points mal distribués.
je viens de tester sur un vieux Celeron ça génère plus de 1.000.000 points/sec (avec rand qui -on le sait- est optimisable d'un facteur 13)

n°1267628
souk
Tourist
Posté le 15-12-2005 à 16:25:27  profilanswer
 

fra0 a écrit :

la distribution est uniforme avec ma méthode, le tout  c'est d'ignorer les points mal distribués.
je viens de tester sur un vieux Celeron ça génère plus de 1.000.000 points/sec (avec rand qui -on le sait- est optimisable d'un facteur 13)


exact, c'est uniforme, j'avais pas tilté sur le coup du "inferieur ou egal à 1, sinon on relance"
 
n'empeche que c'est un peu stupide d'effectuer des tirages pour rien ("sinon on relance" ) ET  de prendre un point au pif dans une boule pour finalement projeter la chose sur une sphere, je pense que ma methode est quand meme mieux et plus logique vu qu'on prend directement le point sur une sphere et qu'on accepte tous les tirages, mais ca n'engage que moi  [:souk]  
 
 [:klem3i1]

n°1267632
fra0
Posté le 15-12-2005 à 16:26:34  profilanswer
 

je te suggère un test en pratique

mood
Publicité
Posté le 15-12-2005 à 16:26:34  profilanswer
 

n°1267651
souk
Tourist
Posté le 15-12-2005 à 16:30:41  profilanswer
 

ben regardons: toi, tu tires 3 nombres au hasard, tu fais la somme des carrés, si c'est inferieur ou egal a 1 tu divises chacun de tes trois nombre par la racine carrée de la somme de tes carrés sinon tu jettes et tu recommences. et hop tu as ton point sur la sphere.
 
moi je tire deux nombres au hasard et hop j'ai mon point sur la sphere
 
lequel est le moins complexe ? [:petrus75]
(je dis ca, j'ai rien prouvé ni testé hein, c'est juste mon petit doigt qui me le dit [:pingouino] )

n°1267662
fra0
Posté le 15-12-2005 à 16:34:28  profilanswer
 

ou tu places tes 5 ou 6 appels aux fonctions trigo sur ton échelle de complexité ?

n°1267670
Madking
Posté le 15-12-2005 à 16:38:01  profilanswer
 

oui , prendre deux nombres phi et teta compris entre 0 et 2pi aleatoirement, puis utiliser des formules de conversions :  
(par exemple : je ne m en souviezns plus mais ca doit etre ca)
x = cos phi*cos teta
y = sin phi*cos teta
z = sin teta
 
x2+y2+z2=cos2 phi*cos2 teta + sin2 phi*cos2 teta + sin2 teta  
=cos2 teta (cos2 phi + sin2 phi)+ sin2 teta = 1 donc c est bon

n°1267690
ford_escor​t
Posté le 15-12-2005 à 16:45:09  profilanswer
 

si on tire deux anlges aleatoires ce n est pas uniforme car ta densite de probabilite est :
sin(teta)d(teta)d(phi)
Donc si tu tires un teta uniforme, ta distribution ne sera pas uniforme

n°1267694
fra0
Posté le 15-12-2005 à 16:46:53  profilanswer
 

goto -11

n°1267698
souk
Tourist
Posté le 15-12-2005 à 16:48:38  profilanswer
 

fra0 a écrit :

ou tu places tes 5 ou 6 appels aux fonctions trigo sur ton échelle de complexité ?


 
<excuse foireuse>
il a juste demander de tirer aleatoirement des points sur une sphere, apres je sais pas comment il l'utilise. Moi je repondais juste à son probleme [:joce]
</excuse foireuse>
 
 http://cheznous.mesdiscussions.net/icones/smilies/speed.gif
 
nan mais serieux, ca depend de ce qu'il y a autour, si ca se trouve il veut travailler en coordonnées spheriques, auquel cas c'est à ton algo que les calculs trigo viennent se greffer.  [:klem3i1]

n°1267704
souk
Tourist
Posté le 15-12-2005 à 16:50:16  profilanswer
 

ford_escort a écrit :

si on tire deux anlges aleatoires ce n est pas uniforme car ta densite de probabilite est :
sin(teta)d(teta)d(phi)
Donc si tu tires un teta uniforme, ta distribution ne sera pas uniforme


 
bon, je vais definitivement sortir par la petite porte du topic moi  :whistle:  
ca m'apprendra à écouter mon intuition en proba (et pourtant je le sais que les probas spa mon truc  [:dawa_neowen]
 
fra0 [:romf]


Message édité par souk le 15-12-2005 à 16:51:11
n°1267723
Madking
Posté le 15-12-2005 à 16:59:22  profilanswer
 

ford_escort a écrit :

si on tire deux anlges aleatoires ce n est pas uniforme car ta densite de probabilite est :
sin(teta)d(teta)d(phi)
Donc si tu tires un teta uniforme, ta distribution ne sera pas uniforme


 
 
 :pt1cable:  
 
explique mieux la.... j ai des vieux souvenirs de math sup... mais la j pîge pas...
 
la methode des deux angles donne en fait un vecteurs 3D avec une distribution totalement uniforme ! les formules trigo servent juste a le normaliser... si je prends le probleme plus simple de tirer un point sur un cercle.... tu prends un angle a au hasard entre 0 et 2pi... x=cos a et y=sin a     donne ses coordonnées. ce tirage est parfaitememnt uniforme !

n°1267739
souk
Tourist
Posté le 15-12-2005 à 17:14:29  profilanswer
 

Madking a écrit :

:pt1cable:  
 
explique mieux la.... j ai des vieux souvenirs de math sup... mais la j pîge pas...
 
la methode des deux angles donne en fait un vecteurs 3D avec une distribution totalement uniforme ! les formules trigo servent juste a le normaliser... si je prends le probleme plus simple de tirer un point sur un cercle.... tu prends un angle a au hasard entre 0 et 2pi... x=cos a et y=sin a     donne ses coordonnées. ce tirage est parfaitememnt uniforme !


 
ben en fait c'est simple (et oui, c'est moi qui dit ca hum... [:dawa] )
 
fixe ton teta a 0 et prend phi au hasard, et regarde la distribution possible
puis fixes ton teta a pi/2 et prend phi au hasard, compare a ta distribution precedente et demande toi si c'est homogene
(spa comme ca qu'il faut le prouver, mais ca donne une idee du pourquoi [:dawa] j'ai fait la meme erreur d'intuition  :cry: )
 
 
 
 
 
 http://cheznous.mesdiscussions.net/icones/smilies/speed.gif

n°1267868
nathan_g
Posté le 15-12-2005 à 18:30:13  profilanswer
 

Je vous conseille très très fortement de lire la page de mathworld (en anglais), sur ce problème :
 
http://mathworld.wolfram.com/SpherePointPicking.html
 
Il s'agit surement d'un bon récapitulatif sur ce problème, toujours sujet à de nombreuses erreurs.
 
Cordialement,
 
nathan_g

n°1267903
souk
Tourist
Posté le 15-12-2005 à 19:29:58  profilanswer
 

nathan_g a écrit :

Je vous conseille très très fortement de lire la page de mathworld (en anglais), sur ce problème :
 
http://mathworld.wolfram.com/SpherePointPicking.html
 
Il s'agit surement d'un bon récapitulatif sur ce problème, toujours sujet à de nombreuses erreurs.
 
Cordialement,
 
nathan_g


 
:love: merci [:romf]

mood
Publicité
Posté le   profilanswer
 


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

  nombre aleatoire

 

Sujets relatifs
[Visual Basic 6] Nombre aléatoire qui n'est pas vraiment aléatoire...Générer un nombre aléatoire
Génération d'un nombre aléatoire entre 0 et 2^31-1 sous Visual C++ 6.0Generer un nombre aléatoire à l'exception d'un ensemble d'entiers ?
Tirage de nombre aléatoire.nombre aléatoire
Générer un nombre aléatoire...[C]Rendre un nombre aléatoire.
[C/C++] Générer un nombre aléatoire[ JS ] générer un nombre aléatoire et probleme de tableau ( var )
Plus de sujets relatifs à : nombre aleatoire


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