首页
新闻
会员
周边
捐助
园子
·
关注
·
粉丝
·
会员
·
随便看看
·
消息
欢迎,请先
登录
或者
注册
。
登录
/
注册
闪存
博客
发言
小组
投递
新闻
提问
博问
添加
收藏
文库
问题反馈
问题列表
我关注的
我的博问
博问标签
给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
0
悬赏园豆:
5
[待解决问题]
int
random(
int
m ,
int
n)
{
int
k = rand();
int
max = n-1;
while
(k < m)
{
k = k*n + rand();
max = max*n + n-1;
}
return
k/(max/n);
}
有哪位大神可以给讲解一下 每一步的具体含义以及为什么这么做不?3Q!
c++
等概率随机数
adaan
|
初学一级
|
园豆:
193
提问于:2013-09-12 17:44
显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
<
>
分享
分享您的问题
所有回答(1)
0
最简单最粗糙最暴力的方法,m = 5 ,n = 10,带进去算啊
iEvent
|
园豆:529
(小虾三级)
|
2013-09-13 08:49
k=4 ,k=8,再放进去,神马都破解了
支持(
0
)
反对(
0
)
iEvent
|
园豆:529
(小虾三级)
|
2013-09-13 08:50
编辑文本
预览
上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要
登录
以后才能回答,未注册用户请先
注册
。