九章算法官网-原文网址

http://www.jiuzhang.com/problem/13/

题目

有一个随机数生成器,每次等概率的返回1到5中的一个整数。现在需要你利用这个随机数生成器来设计一个新的随机数生成器,每次可以等概率的返回1到7中的一个整数。

解答

随机两次rand(5)相当于随机一次rand(25),将前21个数三三一组分为7组,如果得到的数<=21,则返回对应组号; 如果>21则重复上述过程,直到得到的数<=21。

时间复杂度为O(2*21/25 + 4 * 21/25 * 4/25 + 6 * 21/25 * 4/25 * 4/25 … ) = O(1)

面试官角度

这个题目的解题思路有一点智力题的感觉。因为5和7互质,所以无法找到5^n被7整出。一个基本的陷阱是,调用两次rand(5)得到的是rand(25)而不是rand(10)。

九章算法面试题13 随机数生成器相关推荐

  1. 九章算法面试题27 最大连续子集

    九章算法官网-原文网址 http://www.jiuzhang.com/problem/27/ 题目 给一个整数集合S,定义S的子集D为连续子集当且仅当D中的整数构成连续的整数序列.求S的最大连续子集 ...

  2. 九章算法面试题72 翻转链表I

    九章算法官网-原文网址 http://www.jiuzhang.com/problem/73/ 题目 给一个链表,然后我们要把这个链表进行翻转. 在线测试本题 http://www.lintcode. ...

  3. 九章算法面试题54 带重复元素的全排列

    九章算法官网-原文网址 http://www.jiuzhang.com/problem/54/ 题目 给定一个带重复元素的整数集合,求出这个集合中所有元素的全排列.对于集合[1,1,2],其本质不同的 ...

  4. 九章算法面试题2 抄书问题

    九章算法官网-原文网址: http://www.jiuzhang.com/problem/2/ 题目 有n本书和k个抄写员.要求n本书必须连续地分配给这k个抄写员抄写.也就是说前a1本书分给第一个抄写 ...

  5. 九章算法面试题87 最小子数组

    原文网址 www.jiuzhang.com 问题详情 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 在线评测本题: http://www.lintcode.com/zh-cn/prob ...

  6. 九章算法面试题86 合并排序数组

    原文网址 www.jiuzhang.com 问题详情 合并两个排序的整数数组A和B变成一个新的数组. 在线评测本题: http://www.lintcode.com/zh-cn/problem/mer ...

  7. 九章算法面试题81 岛屿的个数

    原文网址: www.jiuzhang.com 问题详情 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 在线评测本题: ...

  8. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  9. 微软的100道算法面试题(终结版)

    前言 数据结构与算法的重要性已不言而喻,最近,我整理出十大经典排序算法.五大常用算法总结,今天特意整理出微软面试的100题,若有不足之处,欢迎指正!由于篇幅过长,前30道题目写在上一篇,大家可以进我的 ...

最新文章

  1. 2021年高考模拟考成绩查询,2021年湖北省普通高考模拟考试成绩查询
  2. python可以自学吗-没有编程基础,可以自学Python吗?
  3. Effective_STL 学习笔记(八) 永不建立 auto_ptr 的容器
  4. spring是如何管理 事务的
  5. 2016年将是Java终于拥有窗口函数的那一年!
  6. 优秀的代码原来是这样分层的
  7. cad加载dll_你的CAD为什么安装不上?进来看看你就知道了
  8. 一种简单好用的Vue表单验证
  9. 基于机器视觉的曼秀雷敦洗发水瓶印刷缺陷检测
  10. 【C#每日一帖】【转】提高编码效率的一些经验
  11. mysql截取身份证号前几位_EXCEL中怎样截取身份证号前六位数字
  12. AI笔刷:600+专业ai笔刷套装
  13. 基于Java Web的航空售票管理系统(酒店管理系统,图书管理系统、学生管理系统)
  14. WordPress系列教程(二)----WordPress基本使用和常用设置
  15. CTFshow - 七夕杯复现
  16. 计算机操作中常用的几种快捷方式,常用的30个电脑快捷操作技巧
  17. 奋斗吧,程序员——第十六章 笑渐不闻声渐悄,多情却被无情恼
  18. ccf 201903-5 317号子任务【60分】
  19. matlab中制作软件,在matlab app designer中制作多个3d图形动画
  20. 统计学习三要素个人理解

热门文章

  1. sharemouse:MAC Windows
  2. i.php,iPHP简介_开始使用_iPHP框架文档iCMS_给我一套程序,我能搅动互联网
  3. 浅谈表面反射——波动光学篇
  4. java 获取ip地址
  5. Eigen 旋转矢量转旋转矩阵
  6. HEVC中一些英语简写
  7. 转DIY 3D激光扫描仪
  8. ANN 神经网络 入门知识
  9. 【QT学习】实现鼠标滑动触发的轮播图
  10. 最新前端面试知识点总结-2023(3w+字,长篇幅)