版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(1992)
>
虫友互识
(229)
>
导师招生
(46)
>
休闲灌水
(39)
>
硕博家园
(31)
>
论文投稿
(20)
>
文献求助
(14)
>
考博
(13)
>
论文道贺祈福
(12)
>
博后之家
(9)
>
有机交流
(9)
>
基金申请
(8)
>
催化
(8)
>
教师之家
(7)
>
考研
(6)
>
外文书籍求助
(5)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
C/C++
»
【求助】用rand命令怎么产生各占一半的两个随机点
5
1/1
返回列表
查看: 1262 | 回复: 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人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
要不要辞职读博?
已经有3人回复
论文终于录用啦!满足毕业条件了
已经有26人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有4人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有8人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有8人回复
自荐读博
已经有3人回复
不自信的我
已经有5人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
fortran中到底该如何比较两个实数是否相等
已经有8人回复
请问这两种物质是什么?
已经有5人回复
专家帮看看JAPS里要求指定两个preferred reviewer怎么搞啊
已经有9人回复
如何让一个两次让我去面试由于特殊情况我都没去的公司再给我一次面试机会?
已经有7人回复
磷酸盐和氯化钙配制培养基产生沉淀是怎么回事啊
已经有12人回复
两难的选择!博后或工作,请各位支招!
已经有9人回复
投稿遇到问题,不小心提交了两遍,该怎么办呢?
已经有11人回复
液相一个峰,正相板点板两个峰,怎么回事?
已经有20人回复
请问给老外发信yahoo邮箱怎么样
已经有9人回复
使用counterpoise命令,出现警告
已经有7人回复
大修之后还有两个审稿人认为语言不行,该怎么办呢
已经有13人回复
随便一种有机物怎么确认啊?
已经有13人回复
【建议】两人一个国内,一个国外,将来在一块的几率大吗?
已经有62人回复
【求助】恒电位电解电流很小怎么办啊
已经有14人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
散金
+
5
/805
江汉大学招聘AI for Materials/电解液/锂金属/全固态电池等方面的博士或者博士后
+
1
/170
北京-89175-事业单位-诚征女友
+
1
/84
上海大学昝鹏教授、军事医学研究院伯晓晨研究员/倪铭副研究员 课题组招聘博士生
+
1
/77
美国密歇根州立大学林学系杜海顺课题组招收全奖博士生及联合培养博士生
+
1
/75
华中科技大学郭睿副教授建筑与能源科学课题组诚招博士研究生(2026.1.19截止)
+
1
/53
深圳信息职业技术大学-博后招聘(优秀可留校)
+
1
/31
SCI,计算机相关可以写
+
1
/25
SCI,计算机相关可以写
+
1
/24
SCI,计算机相关可以写
+
1
/22
SCI,计算机相关可以写
+
1
/20
SCI,计算机相关可以写
+
1
/19
福建师范大学柔性电子学院招收2026年博士(储能材料与柔性电子器件)
+
2
/18
双一流天津工业大学电信学院李鸿强教授招收2026年申请审核制博士3人
+
1
/9
中国科学院大学-杨晗课题组-诚聘-博士后、副研究员
+
1
/8
上海交通大学环境学院(环境化学与环境毒理学;大数据与人工智能)博士后招聘~
+
1
/7
2026 博士自荐-机器人机构学方向
+
1
/6
香港中文大学(深圳)下一代半导体激光器概念验证中心(筹)招聘工程师
+
1
/5
海南大学化学院—功能分子器件团队博士后招聘
+
1
/2
香港科技大学显示与光电国家重点实验室招收量子点钙钛矿光电液晶显示方向博士生
+
2
/2
1楼
2010-12-08 13:52:08
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
帖子: 699
在线: 102.6小时
虫号: 913482
CODE:
#include
#include
#include
int getrand(int* a, int n)
{
int b[50];
int c = 0;
int idx = 0;
memset(b, 0, 50*sizeof(int));
srand(time(0));
for(int i = 0; i < 50; i++)
{
b[i]=(int)(rand() % 2) + 1;
}
for(int i = 0; i < 50 - n; i++)
{
c = 0;
for(int j = i; j < i + n; j++)
{
if(b[j] == 1)
c++;
}
if(c == 5)
{
idx = i;
break;
}
}
memcpy(a, b+idx, n*sizeof(int));
return idx;
}
对代码进行1千万次调用,耗时30秒,idx的期望大约在4~8这个范围。
赞
一下
回复此楼
高级回复
8楼
2010-12-14 12:57:20
已阅
回复此楼
关注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云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定