Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pi ... [ Algorithme / Maths ] (Anotine)

dimanche 10 septembre 2006 à 10:32:21 | Pi ...

Anotine

   Bonjour ... Pour calculer Pi j'utilise un algorithme, celui de Ramanujan ... Pour l'exécuter j'ai besoin d'un type de variable qui supporte plus de milles décimales ! Si vous en connaissaient un ca serais bien
Merci !

   En attendant voici l'algorithme avec des Double :


Function Pi() As Double
   Dim P1 As Double
= 9801 / (2 * Math.Sqrt(2))
   Dim P2 As
Double
   Dim Incr As
Integer
   For Incr = 0 To
173  ' Maxi que supporte Double
      Dim P2a As Double
= Math.Exp(4 * Incr) * (1103 + (26390 * Incr))
      Dim P2b As Double
= (Math.Exp(Incr) ^ 4) * (396 ^ (4 * Incr))
      P2 += P2a / P2b
   Next
   Return
P1 * (P2 ^ (-1))
End Function

Configuration : Visual Studio 2005

dimanche 10 septembre 2006 à 11:16:39 | Re : Pi ...

Julien237

Tu dois passer soit par des tableaux d'entiers, soit par des strings... Le sujet m'intéresse, je vais essayer de faire un objet qui permet ce calcul, je te le posterai tantot.... Julien.

dimanche 10 septembre 2006 à 16:41:53 | Re : Pi ...

cedvinc

Bonjour,

Tu peux aussi utiliser la méthode de Monte Carlo qui consiste à calculer le nombre PI, basée sur le calcul du nombre de point appartenant au cercle de rayon unité et à l'intervalle de 0 à 1. En calculant la surface qu'occupent les points, il obtient le nombre PI.

Le principe consiste à:
- Tirer aléatoirement (utilisant la fonction RND) un certain nombre (N) de points définis par un couple de valeurs (X et Y) dans l'intervalle 0 à 1;
- Si le point appartient à la surface C, il est comptabilisé.

En prenant un cercle de rayon 1 situé sur un repère x=0 et y =0 (simplifie pour la fonction du nombre aléatoire, on a le code:

Exemple:
For a = 1 To N
     x = Rnd()
     y = Rnd()
     If y * y + x * x <= 1 Then
      
c = c + 1
   End If
 Next
 Text2.Text = 4 * c / N

Avec N le nombre de points (par ex: 1000) et c est le nombre de points présent dans le cercle de rayon 1

lundi 11 septembre 2006 à 10:08:00 | Re : Pi ...

loulou69

Bonjour Avec les formules de Ramanujan (génie divin parmi les génies), tu es sur la bonne voie. Certains diront que le calcul de pi est une quête sans intérêt. Les benchmarks (tests) de processeurs utilise le calcul de Pi pour mesurer leur puissance. VB n'est pas le language approprié pour calculer les décimales de Pi. En son temps, le dinosaure que je suis, a effectué le même type de quête en basic puis en assembleur en utilisant le développement limité de ArcTangente. Le développement de Arctangente permet en effectuant des multiplications d'entier et des divisions par 2 (facile en assembleur décalage d'un bit) d'obtenir le résultat. J'avais utilisé : Pi/4 = 4 * Arctan(1/5)- ArcTan(1/239) peut être pas très rapide Là ou en Basic , j'obtenais dans un temps donné quelques centaines de décimales, en assembleur, et quelques centaines de milliers de décimales avec le même algorythme. (1000 fois plus dans le même temps avec un CPU à quelques centaines de Hz : Motorola 6809) Pour dire qu'il vaut mieux abandonner VB si le but est d'obtenir un record. Aujourd'hui je chercherai à savoir quelle est la formule la plus rapide. Bon courage



Cette discussion est classé dans : p2, math, double, pi, incr


Répondre à ce message

Sujets en rapport avec ce message

Recupération de donnees en reseau [ par steph ] salutmon probleme :j'ai 2 ordinateurs P1, P2 relié ensembleComment faire en Vb pour utiliser les fichiers partages de P2 dans un programme Vb sur P1.p Lancement de mon prog au double clic sous windows [ par JuB ] C'est pas tout à fait ça mais je voulais faire court dans le sujet.Sous l'explorateur, quand vous double cliquez sur un fichier, le programme correspo Double buffering en visual basic ? [ par Christian ] Lorsqu'on veut créer une petite animation en affichant , puis en effaçant successivement les images dessinées , un scintillement désagréable se produi Double buffering en visual basic [ par Christian ] Lorsqu'on veut créer une petite animation en affichant , puis en effaçant successivement les images dessinées , un scintillement désagréable se produi HELP !!!!!! double Controle MCI !!!!!!! [ par schouly ] Il est possible de controler un lecteur de CD rom avec un control MCI mais comment faire pour en controller 2 (D: et E: par exemple) avec 2 controles geometrie math [ par alien ] je cherche un max de formule math appliquee a la geometrie ex:calcul de l'intersection de deux lignes ou cercle ....merci double click sur un node de treeview [ par DEL ] comment simuler ou créer un dbleclick sur un node de treeview ???merci d'avance DEL Pi mais comment on calcul Pi ??? [ par koubihack ] c'est que l'on demande souvent à ceux qui font de l'informatique (plus précisement de la programmation) de calculer Pi avec 10 000 000 de virgules, pe Calcul de Pi au goutte à goutte [ par Marc ] Bonjour,Nous au moin deux á chipoter dans les Pi (il parait que cela rend les vaches folles.).J´ai glâné une belle méthode pour VB (sur le site www/mu


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.