已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。

不要使用系统的 Math.random() 方法。

示例 1:

输入: 1
输出: [7]

示例 2:

输入: 2
输出: [8,4]

示例 3:

输入: 3
输出: [8,1,10]

提示:

  1. rand7 已定义。
  2. 传入参数: n 表示 rand10 的调用次数。

进阶:

  1. rand7()调用次数的 期望值 是多少 ?
  2. 你能否尽量少调用 rand7() ?

// The rand7() API is already defined for you.
// int rand7();
// @return a random integer in the range 1 to 7

class Solution {
public:
    int rand10() {
        while (true) {
            int num = (rand7() - 1) * 7 + rand7();
            if (num <= 40) return num % 10 + 1;
        }
    }
};

470.用Rand7()实现Rand10()相关推荐

  1. leetcode 470. 用 Rand7() 实现 Rand10()

    难度:中等 频次:55 题目: 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数. 你只能调用 rand7() 且不 ...

  2. LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)

    1. 题目 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数. 不要使用系统的 Math.random() 方法. ...

  3. 【LeetCode笔记】470. 用Rand7()实现Rand10()(Java、概率)

    文章目录 题目描述 代码 & 思路 更新版 三刷 - 极简版 题目描述 貌似是比较高频的面试题目啊,有学概率论内味了(讲道理我概率论学得不好) 代码 & 思路 先用Rand7实现Ran ...

  4. 概率p输出1,概率1-p输出0,等概率输出0和1 【LeetCode】470. rand7()构造rand10() 系列变形(新浪、字节面试题)

    目录 1. 等概率输出0和1 1.1 题目描述 1.2 解题思路 & 代码 2. 以 1/N 的概率返回 1~N 之间的数 3. 给定函数rand5() 构造rand7() 或 rand7() ...

  5. [Leedcode][JAVA][第470题][Ran7()实现Rand10()]

    [问题描述][Leedcode][JAVA][第470题][Ran7()实现Rand10()] 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 ...

  6. 【转】 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10...

    转自:http://blog.csdn.net/furturerock/article/details/6850634 View Code 1 int rand7() 2 { 3 return ran ...

  7. 【数据结构与算法】之深入解析“用Rand7()实现Rand10()”的求解思路与算法示例

    一.题目要求 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数. 你只能调用 rand7() 且不能调用其他方法,请 ...

  8. Rand7()实现Rand10()

    这道题选自LeetCode470题,启发自题解,这道题在阿里的实习中出现过,解法基本是数学概率论中的知识. 当我们用random10实现random7的时候,我们根据概率论的知识知道random10会 ...

  9. 【每天学点算法题10.16】由rand7()生成rand10()

    题目描述:给你一个函数rand7(),它可以等概率地生成1~7之间的随机数,使用这个函数rand7(),生成一个函数rand10(),使其能够等概率地生成1~10之间的随机数. 解决办法:舍去法.我们 ...

  10. 【经典题目】rand7()生成rand10()——随机数算法

    随机数算法的转换 从小数向大数映射 这一类的算法主要分为两种,一种是从小数映射向大数,rand7()-->rand10().另外一种是从大数映射向小数rand10()-->rand7() ...

最新文章

  1. mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法
  2. Oracle数据库的trigger(触发器)
  3. 04-图像的阈值操作
  4. ESLint 在中大型团队的应用实践
  5. linux部分基础命令总结,Linux常用基础命令总结
  6. D - Windows Message Queue
  7. 造成OOM的原因有哪几种?
  8. HaLow技术提升车载Wi-Fi质量 促进车联网发展
  9. 树莓派上搭建ActiveMQ
  10. placeholder在不同浏览器下的表现及兼容方法 placeholder兼容
  11. JavaCV音视频开发宝典:录制vp8和vp9编码的webm格式视频,以mp4转webm为例
  12. mysql schemata_mysql8 参考手册-INFORMATION_SCHEMA SCHEMATA表
  13. 记:疯狂的程序员 (连续n天写n个代码)
  14. LODOP打印控件使用问题总结
  15. 数据结构之冒泡排序算法(图解+分析+代码调优)
  16. spring boot微服务项目搭建
  17. 为什么用样本方差估计总体方差的统计量除以n-1
  18. NodeJs string与base64互转
  19. 国外电商网站snapdeal爬取流程
  20. mac itunes 未能连接到服务器,iPhone 11无法在Mac上连接到iTunes吗?解决方法

热门文章

  1. 解密阿里线上问题诊断工具Arthas和jvm-sandbox
  2. 苏宁11.11:苏宁易购移动端的架构优化实践
  3. iOS 项目改名~~~~~
  4. linux解压缩及源码安装
  5. ecshop简化购物流程
  6. 使用工厂方法模式实现多数据库WinForm手机号码查询器(附源码)
  7. sql常用语句集合(工作总结)
  8. apache高性能配置
  9. mysql检查所作的修正_MySQL常见故障检测和修正_mysql
  10. fastjson 添加key value_采坑系列—fastjson