Ir ao conteúdo
  • Cadastre-se

Wesley Vilela

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Wesley Vilela

  1.    Olá,sou extremamente novo e imaturo na programação,comecei faz menos de 1 mês.Nesse sentido,estou fazendo um programa que tem como fim gerar variáveis aleatórias,armazenar em um vetor,impor uma condição e por fim realizar um cálculo básico.No entanto,o programa possui dois problemas:

    1° quando o vetor passa de 10 mil o programa começa a dar erro.

    2° aparentemente a operação final não está sendo realizada com sucesso.

    Mas o porquê desse programa,a ideia é utilizar o método de Monte Carlo em um caso particular(bem abordado no livro do Giordano de física computacional),no qual é feito um lançamento de dardos aleatoriamente em um tabuleiro quadrado de lado 2,com uma circunferência de raio 1 circunscrita.Assim se analisa o primeiro quadrante e faz-se uma razão entre todos os dardos que caíram dentro da curva pelo total de dardos lançados,assim se descobre a área da curva,intuitivamente multiplica-se por 4 e se acha a área total do círculo que é pi.

    OBS: o método trabalha com aproximação,ou seja,não é necessariamente exato e sim com o aumento de lançamentos de dardos a razão abordada converge para pi.

       Enfim,me ajude a solucionar o problema fazendo um imenso favor,desde já agradeço.

     

    CÓDIGO

     

    #include <iostream>

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <time.h>
    #include<math.h>
    #include <cstdlib>
    #include <ctime>
     
    using namespace std;
     
    int main()
    {
        int i,j,resultado,total;
        int vetorx[1000000];
        int vetory[1000000];
        int dentro=0;
        int fora=0;
     
        srand( (unsigned)time(NULL) );
     
        for(i=1 ; i <= 100000 ; i++)
        {
            printf("\n");
            vetorx[1000] = rand()%101;
            cout << vetorx[1000000] << endl;
            printf("\n");
        }
        for(j=1 ; j <= 100000 ; j++)
        {
            printf("\n");
            vetory[1000000] = rand()%101;
            cout << vetory[1000000] << endl;
            printf("\n");
        }
        if(vetory[1000000] <= sqrt(1-vetorx[1000000]^2))
        {
            dentro = dentro +1;
        } else
            {
            fora = fora +1;
            }
        total= fora+dentro;
        resultado = dentro/total;
        resultado= resultado * 4;
     
        printf("\n\nO RESULTADO E: %d\n\n",resultado);
     
        system("pause");
        return 0;
    }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!