新浪笔试rand7构造rand9求答案

当时想了好久都没有想出来,直接就提交了。o(╥﹏╥)o
考完了,大佬们分享下答案呗~
#新浪##笔试题目#
全部评论
pair:(m,n)   m n都是1-7生成的。共49对。按某个规则映射为1-49,1-49都是等概率出现的。49/9不能整除。扔掉映射后的46 48 49 .1 - 45依然是等概率出现的。再把这1-45 按另一种规则映射成1 -9.  代码前面有了
2 回复 分享
发布于 2018-09-16 00:31
rand()7构造0-1生成器,等于7的时候抛弃,1-6的时候留下,其中生成1、3、5的时候记做0,生成2、4、6的时候记做1,然后反复使用4次0-1生成器,可以得到4位2进制数,可以表示0-15,把0和10-15的抛弃就得到1-9了
点赞 回复 分享
发布于 2018-09-16 08:44
晕我写成扔掉小于40的……
点赞 回复 分享
发布于 2018-09-16 00:56
就和 不均匀硬币 如何实现等概率一样
点赞 回复 分享
发布于 2018-09-16 00:34
7进制
点赞 回复 分享
发布于 2018-09-15 23:26
def rand9():     result = 49     while result>45:         result = 7*(rand(7)-1) + rand7()     return result%9 +1 和楼上思路相同
点赞 回复 分享
发布于 2018-09-15 23:23
rand7 2次,49种情况,45种对应1-9,剩下的情况循环
点赞 回复 分享
发布于 2018-09-15 23:15

相关推荐

03-09 20:32
运营
牛客972656413号:成绩管理系统会不会有点太。。。
点赞 评论 收藏
分享
评论
点赞
15
分享

创作者周榜

更多
牛客网
牛客企业服务