Algoritmo estatístico para cálculo de PI em C

Publicado por Perfil removido (última atualização em 17/04/2013)

[ Hits: 13.893 ]

Download pi-001.c




Método estatístico.

Sorteia uma série de coordenadas aleatórias num quadrado unitário e conta quantas são consideradas dentro de um círculo unitário.

Ao final, divide o número de pontos contados dentro pelo total de pontos contados (total de repetições do loop).

  



Esconder código-fonte

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <time.h>

main () {

   srand((unsigned int)time((time_t *)NULL));

   int in = 0, out = 0;
   double d, x, y, pi;
   long long cont = 10516267;    // ou qualquer outro valor
   
   while (cont-->0) {

      x = (double) rand()/ (double)INT_MAX;
      y = (double) rand()/ (double)INT_MAX;

      d = x*x + y*y;

      (d<=1.0) ? in++ : out++;

   }

   pi = 4.0 * (float) in / (float) (in + out);

   printf ("pi (aprox.) = %2.13f\n", pi);

}

Scripts recomendados

Aritmética de ponteiros (gcc)

Algoritmo do método de Newton

métodos de ordenação

Método eficiente de armazenamento utilizando containers (Vector e Map)

Lista encadeada com cabecalho


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário