加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C随机数生成

发布时间:2020-12-16 06:48:49 所属栏目:百科 来源:网络整理
导读:例如,以下表达式: r =(rand()%10)1; 从1-10生成随机数. 我们怎样才能让它从0-10生成随机数? 谢谢. 解决方法 你快到了! rand()函数返回一个相当大的范围内的随机值(0到RAND_MAX).模数运算符的使用将其包装到一个较小的范围内(从0到9,因为你修改了10)然后1
例如,以下表达式:

r =(rand()%10)1;

从1-10生成随机数.

我们怎样才能让它从0-10生成随机数?

谢谢.

解决方法

你快到了! rand()函数返回一个相当大的范围内的随机值(0到RAND_MAX).模数运算符的使用将其包装到一个较小的范围内(从0到9,因为你修改了10)然后1将它移动到1到10.

要获取0到10之间的值,您可以使用rand并将其值修改为11:

r = rand() % 11;

更一般地,要获得[0,n]范围内的随机值,您可以编写

r = rand() % (n + 1);

最后,要获得[k,n k]范围内的值,您可以编写

r = rand() % (n + 1) + k;

当然,正如纯粹主义者所指出的那样,这并不一定会给你真正统一的值,因为通过某种值修改rand()将不会均匀地分配所有整数.这通常不是一个问题(你将被非常非常小的数量),但如果它是你可能想考虑寻找一个比rand()更强大的随机数生成器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读