Как подойти к пи по кругу - PullRequest
1 голос
/ 08 июня 2019

Я получил задание для поступления в программу Computer Science, где мне нужно поступить в PI. Чтобы вычислить пи, я должен сделать соотношение между площадью квадрата, круга, общим количеством точек и количеством точек в круге.

  • N = общее количество точек
  • M = точки внутри круга
  • Диаметр 400

Формула площади круга

радиус ^ 2 * π или диаметр ^ 2 * π / 4

Формула площади квадрата

2 * радиус ^ 2 или диаметр ^ 2

У меня была формула (M / N) * 4

Вот как я понял:

(d ^ 2 * π / 4): d ^ 2 = M: N

π / 4 = M / N

π = (M / N) * 4

проблема в том, что я не получаю пи в качестве вывода, но около 14.2 ..

Кто-нибудь знает, что я делаю не так?

Итак, при обработке я написал следующий код

float N = 0;
float M = 0;

void setup()
{
    size(400, 400);
    frameRate(90000); 
    background(255, 255, 255);
    ellipse(200,200,400,400);

}

void draw()
{

    /* Random x- en y-coordinate. */
    float x = random(0,400);
    float dx= (x-200);
    float y = random(0,400);
    float dy = (y-200);
    float d = (float)(Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2)));

    /*Red in the circle*/
    if(d <= 200 ){ 
      stroke(255,0,0);
      M++;
    } 
    else{ 
      stroke(0,255,0); /*green around the circle*/
      N++;
    }
    point(x,y);
    println

    ((M/N)*4); 

}

1 Ответ

2 голосов
/ 08 июня 2019

Точки, которые попадают внутрь круга, также попадают в квадрат, поскольку круг лежит внутри квадрата.

Вам нужно сделать 4 * M / (M + N).

...