随机取值和设置起始点rand()srand()

初学c语言关于一些函数的解释和运用,每天都会学到一些函数还有一些代码的运用,记录一下初学c语言的过程。帮助自己也希望能帮到更多的人吧,如果说的有错还请大佬帮忙指出。

1.rand()rand()是是c语言中常用的一个选随机数的是用线函数,但是rand()内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以认定是为随机数。

因此在使用rand()的时候需要再设置一个随机,也就是一个种子。rand()会返回一个范围在0到lRAND_MAX(至少是32767)之间的伪随机数(整数)。

上面是我在百度上找的一些概念,但按照我是在0到的理解就是单独使用rand()的话他是有线性的随机值,在一定范围内可以使用他来表示随机值,但在循环中他的输出结果总是相同的。因此就需要一个随机的起点,也就是上面说的一个种子,因此就需要另一个函数srand()这个函数是设置起点的。这个到下面说,rand()这个在函数使用时可以rand()%n来设置取随机数的范围(小于n)。他的库函数是stdlib.h。

2.strlen()strlen()正如我上面所说他是设置起点的,但是他设置的起点也是固定的,但如何取一个随机发起点的呢?关于随机值咱们上面提到rand()但是这样的话又需要一个随机的起点这样就陷入了一个循环。这边有两个方法,一个是用time()函数,还有一个就是getpid()。这里只先说一个time函数。

srand((unsignet int)time(NULL))

time的库函数是time.h。srand()的库函数与rand()的库函数相同。

当声明随机起点时最好不要声明在一个函数中,这样会使取的随机数相差较小,不够彻底随机。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值