版块导航
正在加载中...
客户端APP下载
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(431)
>
导师招生
(71)
>
招聘信息布告栏
(24)
>
生物科学
(23)
>
休闲灌水
(23)
>
论文道贺祈福
(22)
>
考研
(19)
>
找工作
(17)
>
博后之家
(15)
>
硕博家园
(13)
>
医学
(13)
>
海归之家
(7)
>
访问学者
(7)
>
文献求助
(5)
>
虫友互识
(5)
>
公派出国
(5)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
C/C++
»
【求助】用rand命令怎么产生各占一半的两个随机点
5
1/1
返回列表
查看: 1635 | 回复: 8
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
shugq_2009
新虫
(小有名气)
应助: 0
(幼儿园)
金币: 17.2
帖子: 66
在线: 54.5小时
虫号: 822406
[交流]
【求助】用rand命令怎么产生各占一半的两个随机点
我现在想用rand命令产生各占一半的1和2两个随机数,我不知道用什么命令实现各占一半,望赐教,谢谢。下面是我产生1和2两个随机数的程序
srand((int)time(0));
for(int i=0;i<10;i++)
{
printf("%d\n",1+rand()%2);
}
return(0);
}
回复此楼
» 猜你喜欢
申博发邮件
已经有8人回复
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有9人回复
国社科系统bug了,是不是要放榜了?
已经有7人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有8人回复
上海工程技术大学激光智能制造课题组招收博士研究生
已经有8人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
fortran中到底该如何比较两个实数是否相等
已经有8人回复
请问这两种物质是什么?
已经有5人回复
专家帮看看JAPS里要求指定两个preferred reviewer怎么搞啊
已经有9人回复
如何让一个两次让我去面试由于特殊情况我都没去的公司再给我一次面试机会?
已经有7人回复
磷酸盐和氯化钙配制培养基产生沉淀是怎么回事啊
已经有12人回复
两难的选择!博后或工作,请各位支招!
已经有9人回复
投稿遇到问题,不小心提交了两遍,该怎么办呢?
已经有11人回复
液相一个峰,正相板点板两个峰,怎么回事?
已经有20人回复
请问给老外发信yahoo邮箱怎么样
已经有9人回复
使用counterpoise命令,出现警告
已经有7人回复
大修之后还有两个审稿人认为语言不行,该怎么办呢
已经有13人回复
随便一种有机物怎么确认啊?
已经有13人回复
【建议】两人一个国内,一个国外,将来在一块的几率大吗?
已经有62人回复
【求助】恒电位电解电流很小怎么办啊
已经有14人回复
1楼
2010-12-08 13:52:08
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
dubo
金虫
(著名写手)
程序强帖: 4
应助: 23
(小学生)
贵宾: 0.779
金币: 569.2
帖子: 1821
在线: 349.5小时
虫号: 559371
★
余泽成(金币+1):欢迎新虫,谢谢参与应助! 2010-12-12 21:04:40
这个可以用MATLAB,很简单的
rand(m,n)>0.5+1
就可以产生m行n列的1,2随机数,LZ就在生成的数组里找一个符合要求的行或列就可以了
如果想用C生成,建议用MersenneTwister随机数,功能超级强大,什么类型的随机数都可以生成
赞
一下
(1人)
回复此楼
高级回复
6楼
2010-12-12 16:43:49
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 9 个回答
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
帖子: 699
在线: 102.6小时
虫号: 913482
★ ★
余泽成(金币+2):辛苦辛苦! 2010-12-12 20:59:52
恩,烧死100个脑细胞后,想到一个方法,不过效率不高。
因为rand近似是均匀分布的, 所以你如果需要10个1、2的均匀分布且各占一半的话,不如产生20个,然后从左到右数十个数,计算一下是不是各5个,如果不是,就换下一组。如果满足就返回。如果都不满足,就重新再生成一次。
赞
一下
(1人)
回复此楼
2楼
2010-12-09 18:50:09
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
tjyl
金虫
(正式写手)
程序强帖: 2
应助: 0
(幼儿园)
金币: 3218.1
帖子: 576
在线: 156.6小时
虫号: 765184
★ ★
余泽成(金币+2):谢谢应助! 2010-12-12 21:01:42
我觉得直接LZ那样就行了,从概率上说1+rand()%2的可能只有1,2,其概率都是0.5.
各占一半是从概率上说的,并不是说100个数里面两个数一定得各50个。个人理解,呵呵。
int rand_two(void)
{
return 1+rand()%2;
}
引用回帖:
Originally posted by
holmescn
at 2010-12-09 18:50:09:
恩,烧死100个脑细胞后,想到一个方法,不过效率不高。
因为rand近似是均匀分布的, 所以你如果需要10个1、2的均匀分布且各占一半的话,不如产生20个,然后从左到右数十个数,计算一下是不是各5个,如果不是,就 ...
赞
一下
(1人)
回复此楼
3楼
2010-12-11 23:24:33
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
帖子: 699
在线: 102.6小时
虫号: 913482
★
余泽成(金币+1):鼓励讨论! 2010-12-12 21:02:00
引用回帖:
Originally posted by
tjyl
at 2010-12-11 23:24:33:
我觉得直接LZ那样就行了,从概率上说1+rand()%2的可能只有1,2,其概率都是0.5.
各占一半是从概率上说的,并不是说100个数里面两个数一定得各50个。个人理解,呵呵。
int rand_two(void)
{
return 1+r ...
我觉得是你没理解LZ的意思(要不就是我没理解对)
LZ想要一组数, 1 和2在里面均匀分布,且个数正好是各占一半。
虽然LZ的算法在理论上成立,但不能满足各占一半这个要求。
所以我认为我的算法,虽然效率不高,但能够满足这两点要求。
赞
一下
(1人)
回复此楼
4楼
2010-12-12 12:30:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 9 个回答
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定