书上写int rand(void)和void srand(unsigned seed)
举了rand ( )%100的例子,不过还是不懂怎么用
比如我想随机一个1~100的数字,但是每次随机都不一样,要怎么写
网上都说用void srand(unsigned seed),但我不知道它放在哪
我初学c++,看不懂太深的语句,只希望大家能用一个简单的例子帮我下,谢谢
c++中的伪随机函数怎么用
答案:3 悬赏:50 手机版
解决时间 2021-01-31 18:03
- 提问者网友:眉目添风霜
- 2021-01-30 19:15
最佳答案
- 五星知识达人网友:你哪知我潦倒为你
- 2021-01-30 19:24
#include <stdlib.h>
#include <stdio.h>
#include <time.h> //使用当前时钟做种子
void main( void )
{
int i;
srand(time( NULL ) ); //初始化随机数
for( i = 0; i < 10;i++ ) //打印出10个随机数
printf( " %d\n", rand()%100 );
}
和上楼差不多哈。。。
#include <stdio.h>
#include <time.h> //使用当前时钟做种子
void main( void )
{
int i;
srand(time( NULL ) ); //初始化随机数
for( i = 0; i < 10;i++ ) //打印出10个随机数
printf( " %d\n", rand()%100 );
}
和上楼差不多哈。。。
全部回答
- 1楼网友:时间的尘埃
- 2021-01-30 21:46
#include <ctime>
int main()
{
time_t tm;
ctime(&tm); //获取当前时间距离1970年的秒数
srand(tm); //将获取的秒数作为随机种子
int a=rand()%100;
return 0;
}
- 2楼网友:洒脱疯子
- 2021-01-30 20:08
我晕,暗夜大飞雪是简直是瞎说。
湛蓝水晶有个小错误,c++用的是rand()这个函数是用来产生随机数的,范围从0到rand_max,在<stdlib.h>中有这样一个定义:
#definerand_max0x7fff//就是32767了
如果需要产生n到m范围内的随机整数,可以:
intans=rand()*(m-n)/rand_max+n;
如果要产生精度更高、更加均匀的随机数,有一个简单的方法,是把若干15位随机数拼接成一个大随机数。比如:
__int64a,ans=0;
for(intk=0;k<4;k++)
{
a=rand();
a<<=15*k;
ans=ans|a;
}
在matlab上测试其颗粒度与均匀性与专业函数产生的随机数性能有差距但不大。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯