Python | Leetcode Python题解之第470题用Rand7()实现Rand10()

题目:

题解:

python 复制代码
class Solution:
    def rand10(self) -> int:
        while True:
            a = rand7()
            b = rand7()
            idx = (a - 1) * 7 + b
            if idx <= 40:
                return 1 + (idx - 1) % 10
            a = idx - 40
            b = rand7()
            # get uniform dist from 1 - 63
            idx = (a - 1) * 7 + b
            if idx <= 60:
                return 1 + (idx - 1) % 10
            a = idx - 60
            b = rand7()
            # get uniform dist from 1 - 21
            idx = (a - 1) * 7 + b
            if idx <= 20:
                return 1 + (idx - 1) % 10
相关推荐
橘颂TA2 分钟前
【剑斩OFFER】算法的暴力美学——只出现一次的数字 ||
算法·leetcode·动态规划
BBB努力学习程序设计30 分钟前
Python面向对象编程:从代码搬运工到架构师
python·pycharm
rising start39 分钟前
五、python正则表达式
python·正则表达式
BBB努力学习程序设计1 小时前
Python错误处理艺术:从崩溃到优雅恢复的蜕变
python·pycharm
我叫黑大帅1 小时前
什么叫可迭代对象?为什么要用它?
前端·后端·python
Dillon Dong1 小时前
Django + uWSGI 部署至 Ubuntu 完整指南
python·ubuntu·django
k***82512 小时前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
new_dev2 小时前
Python网络爬虫从入门到实战
爬虫·python·媒体
q***01652 小时前
Python爬虫完整代码拿走不谢
开发语言·爬虫·python
今天没有盐2 小时前
Python算法实战:从滑动窗口到数学可视化
python·pycharm·编程语言