Нахождение значения Пи методом Монте-Карло. Вычисление неправильное или в коде ошибся? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Задачка на нахождение значения ПИ по методу Монте Карло. В методичке сказано: "You should use this expression for generating a random double between LO and HI ◦ LO + ((double) (rand()) /(((double) RAND_MAX)/(HI-LO));" Сказано, сделано, вот только значения не сходятся у меня с правильными ответами!: Enter the seed for the random number generator: 4 Enter the number of iterations to run: 10 The value of pi is 3.20000. 2. Enter the seed for the random number generator: -7 Enter the number of iterations to run: 2 The value of pi is 4.00000. Будьте добры, подскажите где и в чем, я ошибся! Столько времени бьюсь с этой задачей!
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>

int main() {
   int iterations=0;
   double x,y;
   int count=0; 
   double z;
   double pi;
   int SEED = 0;
   printf("Enter the seed for the random number generator:");
   scanf("%d",&SEED);
   printf("Enter the number of iterations used to estimate pi: ");
   scanf("%d",&iterations);
 
   /* инициализирую рандомные числа*/
   srand(SEED);
   for (int i=0; i<iterations; i++) {
      x = (double)rand()/RAND_MAX;
      y = (double)rand()/RAND_MAX;
      z = x*x+y*y;
      if (z<=1) count++;
      }
   pi=(double)count/iterations*4;
   printf("The value of pi is %g \n",pi);
    return 0;
}

Решение задачи: «Нахождение значения Пи методом Монте-Карло. Вычисление неправильное или в коде ошибся?»

textual
Листинг программы
      y = (double)rand()/RAND_MAX;      
      x = (double)rand()/RAND_MAX;

Объяснение кода листинга программы

  1. Импортируются необходимые библиотеки.
  2. Создается объект класса Random для генерации случайных чисел.
  3. Переменная y инициализируется случайным числом в интервале от 0 до 1.
  4. Переменная x инициализируется случайным числом в интервале от 0 до 1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы