# aide pour un petit calcul...



## Didier Guillion (17 Décembre 2001)

Voici quelques liens (non testés)

http://www-unix.mcs.anl.gov/mpi/usingmpi/examples/simplempi/monte_c.htm

et
http://www.cs.unb.ca/~alopez-o/math-faq/mathtext/node12.html

Bonne chance !

Cordialement


----------



## fanou (17 Décembre 2001)

Bonjour tout le monde,
J'ai une requete un peu particuliere.
J'ai besoin d'aide pour realiser un vieux reve: calculer pi avec plein de décimales (des millions...)
Je l'avais fait sur mon amiga mais c'etait long...
J'ai dl les outils de développement (je trouve ça bien foutu entre autre) mais je me rappelle plus de l'algorithme, et mes programmes en C sont tres loin...
à l'aide   
	

	
	
		
		

		
			










si quelqu'un pouvait m'aider, ça serait sympa. Je fourni la bete de calcul (mon quicksilver en bave deja...  
	

	
	
		
		

		
		
	


	




 ),il manque que le code....arf
merci beaucoup d'avance,j'ai hate !!!!!


----------



## Membre supprimé 2 (17 Décembre 2001)

attention, le premier lien utilise MPI (Message Parsing Interface), il faut un cluster ou un super calculateur pour l'utiliser (MPI existe sur mac  
	

	
	
		
		

		
		
	


	




 ).

sinon, en general, les petit bout de code c, tel que le calcul de pi, ou autre, s'appellent des Snippets

en voila un 

int a=10000,b,c=2800,d,e,f[2801],g;main(){for(;b-c 
	

	
	
		
		

		
		
	


	




f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f**a,f=d%--g,d/=g--,--b;d*=b);}

cherche Snippets sur google  
	

	
	
		
		

		
		
	


	




en voila quelques uns http://remus.rutgers.edu/~rhoads/Code/code.html*


----------



## fanou (17 Décembre 2001)

merci !!
ce soir je m'y plonge....


----------



## Didier Guillion (17 Décembre 2001)

Très joli William, compact et ludique...
Je ne connaissait pas le terme "Snippet" tu en connait l'origine ? Ca vient de découpage ?

Petite remarque, fais gaffe Fanou, il me semble qu'un point virgule parenthèse fermé a ete transformé en smiley dans l'exemple.

Vérifie également que ton compilateur utilise des "int" 32 bits, sinon remplace les "int" par "long"

Cordialement


----------



## Membre supprimé 2 (17 Décembre 2001)

a oui, je l'avais pas vu celui la  
	

	
	
		
		

		
		
	


	




je ne connais pas l'origine du terme
apparement ca veut dire petit bout


----------



## Einbert (17 Décembre 2001)

<BLOCKQUOTE><font size="1" face="Verdana, Geneva">quote:</font><HR>Posté à l'origine par William:
*
int a=10000,b,c=2800,d,e,f[2801],g;main(){for(;b-c ; )f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f*a,f=d%--g,d/=g--,--b;d*=b);}
<HR></BLOCKQUOTE>

Tu n'aurais pas trouvé ce bout de code dans le livre intitulé Le fabuleux nombre PI ?
Si je me rappelle bien ce bout de code ne vas pas calculer à l'infini les décimales...Il va seulement calculer les 2400 premières décimales...

++

[17 décembre 2001 : message édité par Einbert]*


----------



## Membre supprimé 2 (17 Décembre 2001)

c'est un des exemples du site que je site,
il s'arrete a 800 celui la, mais il y en a d'autres


----------



## fanou (17 Décembre 2001)

ben oui, moi c'est plusieurs millions de décimales que je cherche a calculer.
sinon je ressort l'amiga du placard pour retrouver le code (en amiga E pour les connaisseurs...)
merci de votre aide en tout cas.


----------



## fanou (18 Décembre 2001)

hum...
je suis désolé, je crois qu'il va falloir me prendre par la main...
Bon, j'ouvre project builder, il me liste plein de sorte de projet differents...
je prends quoi ?
carbon ? cocoa ? autre ?
j'ai aussi essaye empty, main pas moyen de compiler le source...
au secours je suis perdu !!!!


----------



## Didier Guillion (18 Décembre 2001)

Euh, désolé, moi je l'ai compilé sous Codewarrior 6 sous OS 8.6

Je vais essayer sous project builder.

Cordialement


----------



## Didier Guillion (18 Décembre 2001)

Ah c'est bô le mac,

Relancé Mac OSX , lancé Itunes avec BlueMars, 

Puis Project Builder d'une souris de velour,
Choisir File&gt;New Project&gt;Standard Tool
Supprimer le main.c
Glissez déposer PI-AGMC.C
Executer,

Ca marche...

Top Chrono.

Cordialement


----------



## Ronnie (18 Décembre 2001)

au fait, rien à voir, mais une question toute bête :

ça sert à quoi de calculer les décimales de Pi, hein ?   
	

	
	
		
		

		
		
	


	




Allez, ça doit bien servir à quelque chose ??


----------



## Ronnie (18 Décembre 2001)

Va voir celui là, à priori il peut calculer pleins de millions de décimales..
c'est du bon vieux C, mais ça doit être adaptable sur un peu tout les langages.. 
	

	
	
		
		

		
		
	


	



http://www.snippets.org/snippets/portable/PI_AGM+C.php3


----------



## Didier Guillion (18 Décembre 2001)

Je l'ai compilé et executé, cela a l'air de fonctionner. Bon lien.

Cordialement


----------



## Didier Guillion (18 Décembre 2001)

En pratique cela ne sert à rien. Pi a déjà été calculé avec quelques millions de décimales.

Accessoirement, ce genre de calcul longs et dont le code se compile un peu partout peut permettre de comparer deux compilateurs ou deux machines en terme de vitesse.

Cordialement


----------



## Membre supprimé 2 (18 Décembre 2001)

c'est peut etre l'endroit pour parler d'une methode de compression a laquelle je reflechis de temps en temps, et qui me semble interessante.

chaque programme ou donnee numerique est un nombre.

tout les nombre irrationnels sont composes de series de nombres qui ne se repetent pas.

d'ou l'idee de chercher une sequence dans un irrationnel.

dans le sens irrationnel vers sequence c'est pas compliquer, il suffit d'avoir l'algo pour effectuer le calcul.

dans l'autre sens c'est tres tres long!

on peut fragmenter les donnees binaires par paquets, et travailler sur chaque paquets.

en fait un pattern binaire peut etre donne sous la forme (nombre irrationnel, offset , longueur).


des idées?


----------



## Luc G (18 Décembre 2001)

Je n'ai pas tout compris du message de William sur la compression, alors je suis peut-être hors sujet :

On peut effectivement chercher des séquences (ça marche dans les textes : certains mots se retrouvent), mais on n'a aucune garantie d'en trouver dans un nombre en général.

Par exemple, c'est une des particularités intéressantes de Pi : il n'y a aucune séquence repérable dans ses décimales. C'est ce qui explique une utilisation classique (la seule ?) des décimales de pi : s'en servir comme générateur de nombre aléatoires.

Il y aura des répétitions de suites de N chiffres mais "rares" puisque on les trouvera avec la même probabilité que toute autre suite :

1/10 pour les suites de 1 chiffre
1/100 pour les suites de 2 chiffres, etc.

Pour les données informatiques, c'et généralement un peu meilleur pour des tas de raisons liées au codage, mais les compressions classiques (LZ, LZW) te donnent une bonne idée de ce qu'on peut espérer : sur un texte standard, on gagne environ 50%.

La compression d'images bitmap marche mieux parce qu'on a des zones importatntes avec le même codage (couleur uniforme).

Maintenant, je n'ai jamais regardé, ce serait rigolo, ce que donne stuffit sur les décimales de pi.


----------



## fanou (18 Décembre 2001)

Merci Didier.
oui, Pi a été calculé avec plusieurs milliards de décimales même...
ça ne sert à rien, mais ça ne m'empeche pas d'avoir envie de le faire....


----------



## Membre supprimé 2 (18 Décembre 2001)

oui, on a aucune garanties.

c'est pour ca que ca semble compliquer dans le sens compression, il faut trouver la bonne chaine, dans le bon nombre, si possible pas trop loin du debut.
mais dans le sens decompression c'est faisable.


----------



## fanou (19 Décembre 2001)

bon, j'ai fait comme tu as dit Didier, et ça marche pas:
il me dit:header file 'snipmath.h' not found
c'est ou snipmath.h ???
ouiiiiiiiiin ça marche pas !!!!!!!
quand je le mets en commentaire ça marche pas non plus...
je suis tout triste    
	

	
	
		
		

		
			




demain peut etre...


----------



## Didier Guillion (19 Décembre 2001)

Euh, tu es sur d'avoir la derniere version du Developer CD ROM, fanou ?


Cordialement


----------



## fanou (19 Décembre 2001)

ben oui je les ai téléchargé cette semaine...
je comprends pas.
pas de bol moi....


----------



## Didier Guillion (19 Décembre 2001)

Bonjour,

Remplace 
#include "snipmath.h"
par
//#include "snipmath.h"

pour le mettre en commentaire. Il ne sert qu'a déclarer ispow2.

Ensuite dans le main() mets en commentaire l'analyse des parametres d'entrée :
//      if (argc &lt; 2)
  //          usage();

 //     SIZE = atoi(argv[1]);
 //     if (!ispow2(SIZE))
 //           usage();

Ensuite ajoute juste derriere

 	 SIZE=512;

Qui est la taille de PI a calculer. Ce nombre doit etre multiple de 2.

Cela devrait se compiler et s'executer.

Ensuite tu ferra une petite appli avec project builder pour demander cette valeur a l'ulisateur.

A noter au passage une irrégularité d'écriture : en C les noms écrit en majuscule sont censés représenter des constantes, ici c'est une variable.

Bon amusement,


Cordialement


----------



## fanou (19 Décembre 2001)

Merci Didier de ton aide précieuse.
Je n'ai pas le temps de me replonger dans la prog , j'attends un intercontrat...  
	

	
	
		
		

		
		
	


	






ce soir c'est la bonne


----------



## fanou (20 Décembre 2001)

ça marche !!!!!
j'ai peut etre vu un peu grand, j'ai mis 16777216 (2^24) pour size....
et a priori le resultat est un multiple de ce nombre.
on verra demain le resultat


----------



## fanou (28 Décembre 2001)

Bon, voila quelques precisions:
quand on multiplie par 2 le nombre dans size, on multiplie par 3 le temps de calcul.
ça monte vite...
sinon avec project builder je compile, j'execute. ok.
Mais comment fait on pour avoir un executable totalement independant ?
J'ai pas encore trouvé.
Pour info j'ai mis 900 secondes pour 140000 decimales (size 32768 je crois...)
ça devrait etre plus rapide en executable .
ce soir je l'optimise altivec


----------



## daffyb (20 Janvier 2003)

Je fais remonter ce post car dans le magazin Login No 102 du mois de janvier 2003 il y a un dossier complet sur les différents alogo etc... pour calculer Pi. Pour ce que ça interressait ! amusez vous bien !


----------



## SPQR (21 Janvier 2003)

pour ceux que ça intéresse il existe aussi des formules pour calculer n'importe qu'elle décimale de Pi en un temps pas trop mal mais sans connaître les décimales précédentes. cet algo a été ecit par Simon Plouffe Peter Borwein et David Bailey. leur formule n'est pas compliqué à comprendre et à démontrer.

voici un lien vers la page de simon plouffe et vous pouvez y trouver un pdf expliquant leurs recherches: Page Maison de Simon Plouffe 

mathieu


----------



## plumber (21 Janvier 2003)

http://orion.planet.de/~jan/Snippets.9707/

pour toutes les files headers and c


----------

