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

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

[ Hits: 14.802 ]

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

Lista encadeada com cabecalho

merge sort

Ordenação de dados

Lista encadeada

Aritmética de ponteiros


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts