Написать генератор псевдослучайных чисел, равномерно распределенных на интервале [0, 0.5] - C (СИ)
Формулировка задачи:
Написать генератор псевдослучайных чисел, равномерно распределенных на интервале [0., 0.5] (использовать rand()). Подсчитать частоты попадания в каждый из интервалов длиной 0.1 при выборке 500000
Решение задачи: «Написать генератор псевдослучайных чисел, равномерно распределенных на интервале [0, 0.5]»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #define LEN 80 #define frand() ((float)(rand())/(RAND_MAX)) int main() { srand(time(NULL)); int a[5]={0,0,0,0,0}; for(int i=0;i<50000;++i) { float s = frand()*0.5; if(s<0.1) a[0]+=1; else if(s<0.2) a[1]+=1; else if(s<0.3) a[2]+=1; else if(s<0.4) a[3]+=1; else if(s<=0.5) a[4]+=1; //В принципе можно и так, но нужно отлавливать 0.5 //и границы у интервалов будут суммироваться не туда //int t = s/0.1; //a[t]+=1; } int summ=0; for(int i=0;i<5;++i) { summ+=a[i]; printf("%d \n",a[i]); } printf("S = %d",summ); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами, временной меткой и математическими функциями.
- Определение массива для хранения количества попаданий в каждый интервал.
- Инициализация генератора случайных чисел с помощью функции srand(time(NULL)).
- Создание цикла, который будет выполняться 50000 раз.
- Внутри цикла определяется случайное число s в интервале [0,0.5] с помощью функции frand().
- Затем проверяется значение s и к соответствующему интервалу прибавляется единица.
- После выполнения всех 50000 итераций, вычисляется сумма всех элементов массива a.
- Выводится значение суммы на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д