随机种子C语言
1. c语言怎么让每次运行使用的随机数种子都不一样
指定seed为当前系统流逝了的时间(单位为秒):time_t time(0):
#include <ctime>
//…
srand((unsigned)time(0));
for(int i=0;i<10;i++){
ran_num=rand() % 6;
cout<<ran_num<<" ";
}
第一次运行时输出:0 1 5 4 5 0 2 3 4 2
第二次:3 2 3 0 3 5 5 2 2 3
总之,每次运行结果将不一样,因为每次启动程序的时刻都不同
2. C语言问题,怎样利用系统时间作为随机数的种子
C语言中,设置随机数种子需要包含头文件stdlib.h,利用系统时间需要包含头文件time.h。
设置随机数种子的函数原型为:voidsrand(unsigned int seed);
利用系统时间作为随机数的种子代码如下:
#include<stdlib.h>
#include<time.h>
intmain(){
srand((unsigned)time(NULL));//利用系统时间作为随机数的种子
return0;
}
3. 关于c语言随机数种子的
最前面加 #include"time.h"
//srand(time(a[i])); 前面斜杠去掉
不行再说
4. c语言怎么产生随机数(不用时间种子)
随意移动移动鼠标,然后获取光标的位置,肯定是一个随机数。用函数:BOOL GetCursorPos(LPPOINT lpPoint);可以获取光标的当前位置,如:
#include<stdio.h>
#include<windows.h>
int main()
{
POINT p;
while(1)
{
GetCursorPos(&p);
printf("%ld%ld\n",p.x,p.y);
Sleep(1000);
}
return0;
}
用话筒随便哼几句,然后保存为声音文件,其中的录音数据肯定也是随机数。所以说,要想获得真正的随机数,办法还是很多的。
5. C语言中产生随机数利用到时间种子,什么原理谢谢啦。
在C语言中取随机数所需要的函数是:
int rand(void);
void srand (unsigned int n);
rand()函数和srand()函数被声明在头文件stdlib.h中,所以要使用这两个函数必须包含该头文件:
#include <stdlib.h>
rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于32767,或者更大。
srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。
6. C语言中的随机数种子干嘛用的
防止每次随机的数与之前的相同。
7. 【C语言】随机数种子的设置
我以前学过一点这方面的知识,不知道能不能帮到你。
我记得srand这个函数是用来产生一个范围的,他应该是从一个标准时间开始到现在时间所持续的秒数的这么一个范围。
然后rand函数是从这个范围中进行随机取值。他的返回值是0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h中。具体多少不记得了。。
8. c语言rand()函数随机化种子
放在哪里都不会错,但放在while循环里通常达不到目的。因为循环执行很快,每次都写种子会由于系统时钟还未更新(系统时钟的更新周期相对较长)而写入的是同一个种子,这就会使产生的伪随机序列成为一样的结构,达不到以假乱真的效果了……所以一般在需要产生伪随机序列的代码中在合适的地方用一次种子设置就可以了!
9. C语言产生随机数中,如果种子不变,一直运行rand函数,真的会时无限不循环吗
并不是,如果种子不变,一直算下去,会出现循环现象,只是多少数后才循环与算法相关, 一般算法每次运算都是拿上次生成的数据当成种子, 这样算下去比如说几万个数后会出现与前边重复的结果的
如果每次设置的种子都相同,那么生成的伪随机数列是相同的
可以网络一下伪随机数计算公式,从公式就可以看出不会有无限不循环的情况,这也就是为什么叫"伪随机"的原因
10. c语言中的随机数种子
首先告诉你随机数种子是什么东东.
电脑不是人,不能随便就凭空想象一个数字出来。所谓的随机数,不过是通过一个函数经过计算出来的数字而已。 因此,随机数不过是函数计算出来的值,而一个函数要得到这个值Y,肯定需要一个输入X,所以X就是那个种子。
简单点说 Y = function(x);
随机数=Y,随机数种子=X。
第二,rand()%Y+1是什么意思。 首先你要弄懂%是什么意思,是取余运算。
举个例子 10 % 3 = 1 10 % 5 = 0;就是得到余数。
余数的范围永远是从 0到被除数-1 不可能等于被除数。
所以rand()%Y的意思就是 得到一个随机数,这个随机数的范围是从0到Y-1
再加1当然就是把这个随机数的范围确定在0到Y之间了
一般rand()%某数 都是用来指定取某个范围内的随机数的
这个for循环不过就是取打印10个0-99之间的随机数而已..
如果还不明白hi我