c语言种子,种子,该怎么解决

种子

scand(time(0));是什么意思。。。什么叫随机数种子啊

------解决思路----------------------

c语言的随机数函数,其实是所谓"伪随机数",每次调用随机数函数rand(),返回的值都是从上一次的返回值算出来的。最开始的头一个值就叫“种子”,从种子开始然后产生一系列的随机数。如果用同一个种子,产生的一系列随机数就都是一样的。所以调用随机数函数之前,都要一次性的设置一个不同的种子,用time(0)就是一个简单有效的办法

------解决思路----------------------

int main()

{

int i;

//  srand(time(NULL));  // 如果不加这一句,每次运行的结果都一样。加上之后每次就都不一样了。

for (i=0; i 

printf("%d  ", rand());

}

return 0;

}

------解决思路----------------------

参考C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\rand.c

/***

*rand.c - random number generator

*

*       Copyright (c) Microsoft Corporation. All rights reserved.

*

*Purpose:

*       defines rand(), srand() - random number generator

*

*******************************************************************************/

#include 

#include 

#include 

#include 

/***

*void srand(seed) - seed the random number generator

*

*Purpose:

*       Seeds the random number generator with the int given.  Adapted from the

*       BASIC random number generator.

*

*Entry:

*       unsigned seed - seed to seed rand # generator with

*

*Exit:

*       None.

*

*Exceptions:

*

*******************************************************************************/

void __cdecl srand (

unsigned int seed

)

{

_getptd()->_holdrand = (unsigned long)seed;

}

/***

*int rand() - returns a random number

*

*Purpose:

*       returns a pseudo-random number 0 through 32767.

*

*Entry:

*       None.

*

*Exit:

*       Returns a pseudo-random number 0 through 32767.

*

*Exceptions:

*

*******************************************************************************/

int __cdecl rand (

void

)

{

_ptiddata ptd = _getptd();

return( ((ptd->_holdrand = ptd->_holdrand * 214013L

+ 2531011L) >> 16) & 0x7fff );

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值