C++如何写一个自定义的随机数产生函数

intrandom(){srand(time(0));returnrand()%10;}intmain(){srand(time(0));for(inti=0;i<10;... int random()
{
srand(time(0));

return rand()%10;

}
int main()
{
srand(time(0));
for(int i=0;i<10;i++)
{
//产生10以内的整数
cout<<random()<<endl;
}

return 0;
}

但是运行出来产生的都是一样的数字
展开
 我来答
金色潜鸟
推荐于2018-03-14 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5740万
展开全部
去掉函数里的 srand(time(0));,保留主程序的随机种子。

int random( int m){ return rand()%m; } // 加个 m, 函数更灵活。产生 0-m 的随机数
main(){ srand(time(0));
for(int i=0;i<10;i++) {
cout<<random(10)<<endl; }
return 0;}
==========
真正自定义要自己写,不用 rand() 函数,例如:
#include<stdio.h>
_int64 RandSeed = 123456 ;
unsigned long Random(int max)
{
_int64 x ;
double i ;
_int64 final ;
x = 0xffffffff;
x += 1 ;
RandSeed = RandSeed * 134775813;
RandSeed += 1 ;
RandSeed = RandSeed % x ;
i = ((double)RandSeed) / (double)0xffffffff ;
final = (long) (max * i) ;
return (unsigned long)final;
}

main(){
int i;
for (i=0;i<10;i++){
printf("%u\n",Random(1000));
}
return 0;
}

//MS VC++ 6.0 编译器 (支持 _int64 即 long long int).
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式