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;
}