【问题标题】:floating point random number in c++ [duplicate]C ++中的浮点随机数[重复]
【发布时间】:2015-03-19 20:19:13
【问题描述】:

嗨,我正在尝试为 -1 和 1 之间的随机数编写代码,例如: 0.9 0.3 0.8 但我只能使用此代码获得 1 2 3 5 等数字

rand()%(max-min + 1) + min

c++ 中是否有任何直接功能。如果没有,我该如何实现它

完整的程序是:

#include<iostream>
#include<cstdlib>
#include<vector>
using namespace std;

class perceptron{
    public:
        vector <float> weights;
        int max=5,min=1;
        perceptron( float n){
            for( int i=0 ;i< n; i++){

                weights.push_back(rand()%(max-min + 1) + min);
                cout<<weights[i]<<",";
        }
    }
};
int main(){
    perceptron p1(4);
    return 0;
}

【问题讨论】:

标签: c++ random numbers


【解决方案1】:

是的,C++ 有非常好的生成随机实数的工具。

查看此代码:

#include <random>
#include <iostream>

int main(int argc, char **argv)
{
    std::random_device randdev;
    std::mt19937 generator(randdev());
    std::uniform_real_distribution<> distrib(-1, 1);
    std::cout << distrib(generator) << '\n';
}

不过,您确实需要使用最新版本的 C++ (C++11)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2012-12-18
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多