免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6073 | 回复: 18
打印 上一主题 下一主题

[C] 取个1-100间的随机数. [复制链接]

论坛徽章:
3
巳蛇
日期:2013-10-03 10:41:48申猴
日期:2014-07-29 16:12:04天蝎座
日期:2014-08-21 09:24:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-10 17:10 |只看该作者 |正序浏览
如题,
我先从 /dev/random 取个随机数,
然后再 %100, 这样行吗, 这个取余的动作会破坏这种随机性吗..

数学不行,不会分析啊..

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
19 [报告]
发表于 2013-05-17 20:50 |只看该作者
回复 18# Sevk


    X,假设楼主要求平均分布。 再假如样本是平均分布的,则

0~255 有机率
1,1,1,.... 1 (256个绝对平均)

你这样一算,分布变成以下类似的东西:

2,3,2,3,2,3,2,3.... 3

论坛徽章:
3
寅虎
日期:2013-11-27 07:53:29申猴
日期:2014-09-12 09:24:152015年迎新春徽章
日期:2015-03-04 09:48:31
18 [报告]
发表于 2013-05-17 11:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
17 [报告]
发表于 2013-05-11 15:10 |只看该作者
pandaiam 发表于 2013-05-10 17:10
如题,
我先从 /dev/random 取个随机数,
然后再 %100, 这样行吗, 这个取余的动作会破坏这种随机性吗..

a=radom%100+1;

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
16 [报告]
发表于 2013-05-11 09:23 |只看该作者
回复 1# pandaiam


    this Q has no A. the promble is that what is the RANDOMIZE that you require.

if the RANDOMIZE is just what you awared. then, don't do mathmatic evaluation between the randomize number may help to keep its destribution(i think what you want is keep the randomize number's distribution).

the following is bad instance:
int a =rand();
int b =rand();

int c =a+b;  // <<-- destribution destoried here
int d =a*b;  //  << -- destribution destoried here
int e =a*1000.0 /73.0;  // << -- destribution destoried here

good lucky

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
15 [报告]
发表于 2013-05-11 08:40 |只看该作者
好像是 (int)( 100 * rand()/(RAND_MAX+1.0) ) + 1 吧
rand()/(RAND_MAX+1.0) 的范围是 [0.0,1.0)
100 * rand()/(RAND_MAX+1.0) 的范围是 [0.0,100.0)
(int)( 100 * rand()/(RAND_MAX+1.0) ) 的范围是 [0,99]
(int)( 100 * rand()/(RAND_MAX+1.0) ) + 1 的范围是 [1,100]

hellioncu 发表于 2013-05-10 21:43
这主意还不错?要我肯定打不及格,要是产生的随机数总是>200,理论上存在死循环

顶一下!

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
14 [报告]
发表于 2013-05-10 23:14 |只看该作者
回复 12# hellioncu


那比如连续取多少次都失败就取个指定数

就可以避免死循环,就像异常处理,有的错误,没办法解决,干脆就来硬的,强制到某状态,至少保证了系统运行不会挂,
而且表面看来,运行良好

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
13 [报告]
发表于 2013-05-10 23:11 |只看该作者
本帖最后由 cokeboL 于 2013-05-10 23:15 编辑

我觉得各种随机问题,没必要追求绝对的数学上的平均,理论在实际表现还是基于统计值;而不管采用什么算法,也

逃离不了世间万物的联系这一本质,所以数学上计算概率差不多就行。经典物理再经典,到了微观还是得搞量子力学,

因为我们的工具受限,有测不准原理

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
12 [报告]
发表于 2013-05-10 23:10 |只看该作者
cokeboL 发表于 2013-05-10 23:04
回复 7# hellioncu

如果理论上存在死循环,那随机这东西应该也理论上存在高频、低频,那样实际应用就不 ...


怎么说呢,我的原则是外部给你合法的数据,你的代码不能出问题

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
11 [报告]
发表于 2013-05-10 23:05 |只看该作者
回复 9# shang2010


    同意,比如连续取多少次都失败就取个指定数
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP