Ir ao conteúdo
  • Cadastre-se

Wesley Vilela

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  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...