怎么用Rand7实现Rand10
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么用Rand7实现Rand10",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Rand7实现Rand10"吧!首先需要注意的是,数
千家信息网最后更新 2026年11月01日怎么用Rand7实现Rand10
本篇内容主要讲解"怎么用Rand7实现Rand10",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Rand7实现Rand10"吧!
首先需要注意的是,数字1-10应该具有相同的生成概率。由于我们只能使用rand7函数,所以思路必然是组合使用rand7函数。
如果假设:
a = rand7()b = rand7()
那么通过 x = a + (b - 1) * 7 可以获取数字 1 到 49:
[[ 1. 8. 15. 22. 29. 36. 43.] [ 2. 9. 16. 23. 30. 37. 44.] [ 3. 10. 17. 24. 31. 38. 45.] [ 4. 11. 18. 25. 32. 39. 46.] [ 5. 12. 19. 26. 33. 40. 47.] [ 6. 13. 20. 27. 34. 41. 48.] [ 7. 14. 21. 28. 35. 42. 49.]]
对于数字x: 1---40,我们可以通过 (x - 1) % 10 + 1 来均等的生成1到10 的整数:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10,1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
可以看到,每个数都出现了4次。对于41 --- 49,比较简单的处理方式是直接抛弃。 直到获取的数字是1到40为止。 每次运行程序会生成1到40的概率p为: 40/49, 根据独立事件的期望公式Ex = np, 程序运行的期望运行次数为n为 1.225,每次运行会调用2次rand7函数,所以rand7函数的调用次数期望为 2.45。
参考代码如下:
# Created by Jedi.L# The rand7() API is already defined for you.# def rand7():# @return a random integer in the range 1 to 7class Solution: def rand10(self): """ :rtype: int """ idx = 49 while idx > 40: row = rand7() col = rand7() idx = row + (col - 1) * 7 if idx <= 40: return 1 + (idx - 1) % 10
到此,相信大家对"怎么用Rand7实现Rand10"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
数字
期望
生成
运行
内容
概率
次数
程序
学习
实用
更深
相同
事件
代码
公式
兴趣
可以通过
实用性
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技海报
博彦科技互联网金融
伟宏互联网科技
广州淘业互联网络科技
互联网科技公司起名
互联网金融监管科技数据
科技互联网公司装修
朗新科技与工业互联网
互联网科技未来
中国 科技 互联网
紫鲸互联网科技
凡科互联网科技
兼蜜互联网科技
互联网科技的未来发展
左右互联网络科技
新华互联网科技校企合作
宝灵互联网科技有限公司
爱医互联网络科技
广州富喜互联网络科技
科技发展第三阶段互联网时代
融贸通互联网科技
国外互联网科技网站
广州慧亚互联网科技怎么样
福州新华互联网科技学校 知乎
承德科技产业互联网发展
团飞科技与伯堂互联网服务平台
中国互联网有什么科技
厦门江牛科技互联网
郑州欣桑互联网科技有限公司
互联网科技创新创业项目