Παίρνω το 0 ως απάντηση μου όταν δεν θα πρέπει να

ψήφοι
0

Μαθαίνω λειτουργίες σε C ++ μου πορεία. Όταν εισάγετε ένα ποσό των επαναλήψεων στο πρόγραμμα, θα ρίξει τυχαία «βελάκια» σε έναν πίνακα. Στη συνέχεια, καθορίζει πόσα βελάκια προσγειωθεί μέσα στον κύκλο και όχι στην πλατεία. Στη συνέχεια υπολογίζει pi από το αποτέλεσμα. Το πρόβλημα αυτό είναι επίσης γνωστό ως το Μόντε Κάρλο Εκτίμηση: 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;
        }
    }
}

Αυτό είναι ό, τι έχω πάρει από την κονσόλα: https://gyazo.com/9708adca111e630fa24ccba8ed2df3cc

Εδώ είναι αυτό που πρέπει να πάρετε: https://gyazo.com/5c42981fb207fe0480e1998b65604edd

Δημοσιεύθηκε 27/11/2018 στις 17:44
πηγή χρήστη
Σε άλλες γλώσσες...                            

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