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

2025-04-10 15:00:05
推荐回答(1个)
回答1:

去掉函数里的 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<return 0;}
==========
真正自定义要自己写,不用 rand() 函数,例如:
#include
_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).