如何在C++中進(jìn)行隨機(jī)浮點(diǎn)數(shù)的統(tǒng)計(jì)測(cè)試

c++
小樊
83
2024-08-11 11:18:35

在C++中進(jìn)行隨機(jī)浮點(diǎn)數(shù)的統(tǒng)計(jì)測(cè)試,可以使用隨機(jī)數(shù)生成器來(lái)生成一組隨機(jī)浮點(diǎn)數(shù),然后對(duì)這組數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。以下是一個(gè)簡(jiǎn)單的示例代碼,展示如何生成隨機(jī)浮點(diǎn)數(shù)并對(duì)其進(jìn)行統(tǒng)計(jì)測(cè)試:

#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
#include <numeric>

int main() {
    // 設(shè)置隨機(jī)數(shù)生成器
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<double> dis(0.0, 1.0);

    // 生成一組隨機(jī)浮點(diǎn)數(shù)
    std::vector<double> data(1000);
    std::generate(data.begin(), data.end(), [&]() { return dis(gen); });

    // 計(jì)算平均值
    double mean = std::accumulate(data.begin(), data.end(), 0.0) / data.size();

    // 計(jì)算方差
    double variance = 0.0;
    for (const auto& d : data) {
        variance += (d - mean) * (d - mean);
    }
    variance /= data.size();

    // 輸出統(tǒng)計(jì)結(jié)果
    std::cout << "Mean: " << mean << std::endl;
    std::cout << "Variance: " << variance << std::endl;

    return 0;
}

在這個(gè)示例代碼中,首先設(shè)置了一個(gè)隨機(jī)數(shù)生成器,并使用std::generate函數(shù)生成了一個(gè)包含1000個(gè)隨機(jī)浮點(diǎn)數(shù)的向量。然后利用std::accumulate函數(shù)計(jì)算了這組數(shù)據(jù)的平均值,利用循環(huán)計(jì)算了方差,并最后輸出了平均值和方差。您可以根據(jù)需要進(jìn)行進(jìn)一步的統(tǒng)計(jì)測(cè)試,比如計(jì)算標(biāo)準(zhǔn)差、偏度、峰度等。

0