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
相关推荐
破无差4 小时前
武术套路帖子
python
Chase_______4 小时前
LeetCode 2461 & 1423:定长滑窗变体精讲,从 HashMap 判重到正难则反的转化技巧
算法·leetcode·职场和发展
dfdfadffa4 小时前
mysql如何排查网络延迟引起的数据库连接问题_使用ping测试
jvm·数据库·python
WL_Aurora4 小时前
【每日一题】二分算法
python·算法
2303_821287384 小时前
JavaScript中Redux-Thunk处理异步Action的任务流
jvm·数据库·python
bzmK1DTbd5 小时前
MongoDB聚合框架:Java驱动下的数据聚合操作
java·python·mongodb
2301_782040455 小时前
JavaScript中类 Class 语法的可读性与维护性优势
jvm·数据库·python
2401_871492855 小时前
HTML函数在旧版Windows跑得动吗_系统版本与硬件协同影响【指南】
jvm·数据库·python
kexnjdcncnxjs5 小时前
如何利用宝塔面板进行数据迁移_使用宝塔整机备份功能
jvm·数据库·python
测试员周周5 小时前
【免费福利】AI测试:测试技能包进阶:造数、压测、视觉回归、CI 全流程串联
开发语言·人工智能·python·功能测试·测试工具·ci/cd·测试用例