begin process at 2012 02 14 14:01:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Algorithme

 > 

Maths

 > 

Pi ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pi ...

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ée dans : p2, math, double, pi, incr


Répondre à ce message

Sujets en rapport avec ce message

Coordonnée d'un DrawEllipse [ par maxou1704 ] Bonjour, j'ai un souci pour dessiner un disque dans un picturebox. Le repère est bien créer. Dim A, B, C, D As Long For i = 1 To 10 'Boucle For de 1 déploiement d un projet avec l attachement de la BD [ par famou2 ] Bonjour à tous. Je suis en train de faire un déploiement d un projet avec l attachement de la BD, je pense que j ai fait tout, mais une erreur s affi ellipse et secteur [ par JJDai ] Bonjour Je suis une buse en trigonometrie et je n'arrive à régler le problème suivant: Je suis en VB dotNet, mais en c# m^me topo Je trace un secteur VBA Aligner un texte Autocad 2002 [ par JeffC1977 ] Bonjour à tous Je débute à coder avec du VBA et Autocad 2002. À ma grandre surprise j'arrive à faire quelque truc sans trop de problème. Je code po double Click de souri [ par tsi3 ] merci aidez moi s'il vous plait Comment faire une fonction de double click de souris ? exemple: si on lance un timer,apres un certain temp une Listview : Double Click sur zone vide [ par EvilGost ] Bonjour à toute la communauté, je fais appel à vous car je me heurte à un petit problème. En effet, je souhaite intercepté l'évènement "double_click Problème de math ^^ [ par benjilebest ] Bonjour à tous, N'étant pas (du tout) calé en programmation je m'en remets à des experts qui voudront bien me consacrer un peu de leur temps libre (d double clique datagrid [ par marwa580 ] Bonjour, J'ai besoin d'ouvrir une formulaire lorsque je double-clique sur une cellule du datagrid. Il me faut donc récupérer la valeur de la cellule c VB6 Calcul mathématique avec une variabl en Variant ? [ par JeffC1977 ] Bonjour Je désire faire un calcul simple de Pythagore Je crois que mon problème est que je dois faire le calcul avec une variable qui est en variant.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,354 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales