给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数

该博客探讨了两种方法来解决从已有的随机数生成器(生成1到5的整数)扩展到生成1到7的等概率随机数。方法一是通过位置抽取,通过多次调用生成1到5的随机数并保留最大值,直至只剩下一个数。方法二是利用5进制和10进制转换,将21个等概率的5进制数均匀分成7组,转换为10进制进行分组。博客提供了相关代码实现和参考资料链接。
摘要由CSDN通过智能技术生成

这个题目有个隐式要求,等概率。范围内每个随机数出现的概率要相等。


方法一:位置抽取

只要我们可以从 n 个数中随机选出 1 到 n 个数,反复进行这种运算,直到剩下最后一个数即可。
我们可以调用 n 次给定函数,生成 n 个 1 到 5 之间的随机数,选取最大数所在位置即可满足以上要求。
例如
初始的 7 个数 [1,2,3,4,5,6,7].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值