主题
:
随机数问题
查看单个帖子
#
7
(
permalink
)
2008-04-03
tomato
高级会员
注册日期: 2002-09-19
帖子: 840
文章:
7
回复: 随机数问题
楼上貌似都理解错题意了
貌似是算法导论的习题,就是已经有一个均匀分布的int rand_5()
要实现一个int rand(n)
我改一下题目,假设rand_5返回0~4,需要构造一个0~n-1的随机数
我的方法是用k次rand_5()(5^k >= n)得到一个k位的5进制数,当这个数大于等于n时丢弃重新来一次,小于等于n时返回
例如n = 31,则k = 3,那么这个3位5进制数为rand_5() * 25 + rand_5() * 5 + rand_5()
tomato
查看公开信息
发送悄悄话给 tomato
查找 tomato 发表的所有帖子
查看 Blog