C et petit problème de maths
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

C et petit problème de maths



  1. #1
    inviteddf32147

    C et petit problème de maths


    ------

    Dans le cadre d'un test d'un cluster de deux machines virtuelles, je souhaite leur faire exécuter un petit calcul: le nombre PI

    j'ai donc le code suivant:


    Code:
    #include <stdarg.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    inline
    double
    f(double x)
    {
       return (4.0/(1.0+x*x));
    }
    int
    main(int argc, char **argv)
    {
       long long int num_trap = 0;
       long long int i = 0;
       double x = 0;
       double h = 0;
       double sum = 0;
       /* En cas de probleme, le programme s arete en 60 sec */
       alarm(600);
       num_trap = atoll(argv[1]);
       printf("Nombre de trapezes: %Ld\n", num_trap);
       h = 1 / (long double)num_trap;
       h = 0;
       sum = 0;
       for(i=2;i<num_trap;i++)
       {
          sum += f(x)*h;
          x += h;
       }
       sum += (f(0)+(f(1)))*h/((long double)2);
       printf("pi=%.12Ld\n", sum);
    return 0;
    }

    Mais voilà le problème, le résultat du calcul est toujours:


    Code:
    NODE1:~# time ./pi-seq 10000000
    Nombre de trapezes: 1000000
    pi=000000000000
    
    real       0m3.475s
    user      0m3.496s
    sys        0m0.004s
    NODE1:~#



    Il me semblait que PI commencait par 3,14

    N'étant pas vraiment un développeur (je suis plus à l'aise avec les réseaux) je me tourne vers les spécialistes.
    A quel endroit ais je fait une erreure ?
    J'ai pas mal bricoler mais je ne trouve pas ma faute.

    D'avance merci.

    -----

  2. #2
    MadMac

    Re : C et petit problème de maths

    Bonjour.

    Pas trop le temps de reprendre l'algo. Mais voir ca, mon petit me dit qu'il y a anguille sous roche :

    Citation Envoyé par satsuma Voir le message
    Code:
       h = 1 / (long double)num_trap;
       h = 0;
    Tu initialises h puis tu le remets a 0. Et ensuite dans la boucle tu l'utilise comme multiplicateur. Avec 0 ca va peter haut

    Tony

  3. #3
    inviteddf32147

    Re : C et petit problème de maths

    Certes, voilà bien une grosse bourde !

    Je vais modifier ça, je te tient au jus.

    Merci pour ton aide

Discussions similaires

  1. Petit Exercice de spé Maths s
    Par invite193743ea dans le forum Mathématiques du collège et du lycée
    Réponses: 8
    Dernier message: 24/11/2007, 11h50
  2. petit pb avec dm de maths
    Par invite20c850d4 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 16/09/2007, 14h10
  3. 1°S, petit exercice de maths :)
    Par invitea618794d dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 26/04/2006, 17h53
  4. petit probléme de maths
    Par invite9c20589c dans le forum Mathématiques du collège et du lycée
    Réponses: 5
    Dernier message: 26/02/2006, 21h30
Découvrez nos comparatifs produits sur l'informatique et les technologies.