Нахождение значения Пи методом Монте-Карло. Вычисление неправильное или в коде ошибся? - 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. Будьте добры, подскажите где и в чем, я ошибся! Столько времени бьюсь с этой задачей!
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #include <string.h>
  5.  
  6. int main() {
  7. int iterations=0;
  8. double x,y;
  9. int count=0;
  10. double z;
  11. double pi;
  12. int SEED = 0;
  13. printf("Enter the seed for the random number generator:");
  14. scanf("%d",&SEED);
  15. printf("Enter the number of iterations used to estimate pi: ");
  16. scanf("%d",&iterations);
  17. /* инициализирую рандомные числа*/
  18. srand(SEED);
  19. for (int i=0; i<iterations; i++) {
  20. x = (double)rand()/RAND_MAX;
  21. y = (double)rand()/RAND_MAX;
  22. z = x*x+y*y;
  23. if (z<=1) count++;
  24. }
  25. pi=(double)count/iterations*4;
  26. printf("The value of pi is %g \n",pi);
  27. return 0;
  28. }

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

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

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

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

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


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

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

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы