Ich erhalte 0 als meine Antwort, wenn ich nicht

stimmen
0

Ich lerne Funktionen in meinem C ++ Kurs. Wenn ich eine Menge von Iterationen in das Programm eingeben, wird es zufällig „Dart“ auf ein Brett werfen. Es bestimmt dann , wie viele Pfeile innerhalb des Kreises landen und nicht den Platz. Es berechnet dann pi aus dem Ergebnis. Dieses Problem wird auch als Monte Carlo Schätzung bekannt: http://polymer.bu.edu/java/java/montepi/MontePi.html

#include <iostream>
#include <math.h>
using namespace std;
int getRandomX(float &x);
int getRandomY(float &y);
bool insideCircle(float x, float y);
int getInput();


main()
{

int iter = getInput();
int inside = 0;
float x = getRandomX(x);
float y = getRandomY(y);

for(int i=0; i<iter; i++)
{
    if(insideCircle(x,y))
    {
    inside++;
    }
}
float pi = (4 * inside)/iter;

cout << Pi:  << pi;
}

int getRandomX(float &x)
{
   float numx = (rand() / RAND_MAX) * 2 - 1;
   return numx;

}

int getRandomY(float &y)
{
   float numy = (rand() / RAND_MAX) * 2 - 1;
   return numy;

}

bool insideCircle(float x, float y)
{
    float dist = sqrt(pow(x, 2) + pow(y, 2));
    if(dist <= 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

int getInput()
{
    while(true)
    {
        float num;
        cout << Enter a number of iterations: ;
        cin >> num;
        if(num > 0)
        {
            return num;
        }
    }
}

Das ist , was ich von der Konsole: https://gyazo.com/9708adca111e630fa24ccba8ed2df3cc

Hier ist , was ich bekommen sollte: https://gyazo.com/5c42981fb207fe0480e1998b65604edd

Veröffentlicht am 27/11/2018 um 17:44
quelle vom benutzer
In anderen Sprachen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more