Написать генератор псевдослучайных чисел, равномерно распределенных на интервале [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;
}

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

  1. Подключение необходимых библиотек для работы со случайными числами, временной меткой и математическими функциями.
  2. Определение массива для хранения количества попаданий в каждый интервал.
  3. Инициализация генератора случайных чисел с помощью функции srand(time(NULL)).
  4. Создание цикла, который будет выполняться 50000 раз.
  5. Внутри цикла определяется случайное число s в интервале [0,0.5] с помощью функции frand().
  6. Затем проверяется значение s и к соответствующему интервалу прибавляется единица.
  7. После выполнения всех 50000 итераций, вычисляется сумма всех элементов массива a.
  8. Выводится значение суммы на экран.

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


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

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

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