这篇博文分享关于在C语言中生成
随机数的问题
首先,在C语言中的库函数中stdlib.h包含了一个函数rand(),它是用于生成随机数的,范围是[0,2147483647]内的整数,等效于直接在c文件中这样写语句①:int a = rand();,这样生成的随机数永远是一个相同的数,因为rand()函数是按照随机数种子来操作的,可通过语句②:srand((unsigned)time(NULL));语句进行随机化随机数种子。
生成指定范围的随机数便可通过语句③:rand()%26 + 97;(其中,%为取余符号,26和97为随意选定的)来实现,该语句是生成[97,97+25]范围内的整数。比如通过语句①生成了随机数a = 1000,那么1000除以26等于38.46153...,小数部分乘以26便是1000%26的结果(取整),因为小数部分范围为(0,1),所以余数的范围便为(0, 26),所以语句③的范围就是[97, 97+26)等效于[97, 97+25]。
上面这种方法简洁明了,还有一种方法在c文件中写入语句④:(int)(n * rand() / (RAND_MAX + 1.0));也可实现(该语句实现生成[0,n]范围的整数)。
作者: muqishi, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-4026276.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论