注册 登录
编程论坛 C++教室

怎样更好的产生随机数

ly861014 发布于 2009-08-08 19:18, 643 次点击
程序中有个循环,比如说是循环10次,每次都要用到一个概率,怎样才能使这10次中产生的概率差别很大,比如说前一次是0.1, 下一次则是0.7。

我再补充一点,我是希望每次产生的概率精度高一点,比如四位小数

[ 本帖最后由 ly861014 于 2009-8-8 20:14 编辑 ]
6 回复
#2
xufen3402009-08-08 20:08
#include<iostream>
#include<ctime>
using namespace std;
int main(int argc,char** argv)
{
    srand(time(NULL));
    for(int i=0;i<10;i++){
    float j=float((rand()%10))/10;
    cout<<"rand="<<j<<endl;
    }
    return 0;
}
#3
ly8610142009-08-08 20:15
回复 2楼 xufen340

刚才忘了说,每次产生的概率小数位数为四
#4
xufen3402009-08-08 21:11
#include<iostream>
#include<ctime>
#include<iomanip>
using namespace std;
int main(int argc,char** argv)
{
 
    srand(time(NULL));
    for(int i=0;i<10;i++){
        float j=float((rand()%9999))/10000;   
        cout<<setiosflags(ios::fixed)<<setprecision(4)<<j<<endl;
    }
    return 0;
}
#5
平凡不在2009-08-09 08:51
回复一楼
一楼的那哥们,能不能把你的程序加上解释,小弟我看不懂呀
#6
xufen3402009-08-09 08:58

{  
 
    srand(time(NULL));  //随机数种子
    for(int i=0;i<10;i++){  
        float j=float((rand()%9999))/10000; //获得随机数     
        cout<<setiosflags(ios::fixed)<<setprecision(4)<<j<<endl;//保留小数点4位  
    }  
    return 0;  
}
#7
平凡不在2009-08-10 16:31
感谢
谢谢一楼的哥们。我现在懂了
1