九章算法面试题13 随机数生成器
九章算法官网-原文网址
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 随机数生成器相关推荐
- 九章算法面试题27 最大连续子集
九章算法官网-原文网址 http://www.jiuzhang.com/problem/27/ 题目 给一个整数集合S,定义S的子集D为连续子集当且仅当D中的整数构成连续的整数序列.求S的最大连续子集 ...
- 九章算法面试题72 翻转链表I
九章算法官网-原文网址 http://www.jiuzhang.com/problem/73/ 题目 给一个链表,然后我们要把这个链表进行翻转. 在线测试本题 http://www.lintcode. ...
- 九章算法面试题54 带重复元素的全排列
九章算法官网-原文网址 http://www.jiuzhang.com/problem/54/ 题目 给定一个带重复元素的整数集合,求出这个集合中所有元素的全排列.对于集合[1,1,2],其本质不同的 ...
- 九章算法面试题2 抄书问题
九章算法官网-原文网址: http://www.jiuzhang.com/problem/2/ 题目 有n本书和k个抄写员.要求n本书必须连续地分配给这k个抄写员抄写.也就是说前a1本书分给第一个抄写 ...
- 九章算法面试题87 最小子数组
原文网址 www.jiuzhang.com 问题详情 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 在线评测本题: http://www.lintcode.com/zh-cn/prob ...
- 九章算法面试题86 合并排序数组
原文网址 www.jiuzhang.com 问题详情 合并两个排序的整数数组A和B变成一个新的数组. 在线评测本题: http://www.lintcode.com/zh-cn/problem/mer ...
- 九章算法面试题81 岛屿的个数
原文网址: www.jiuzhang.com 问题详情 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 在线评测本题: ...
- 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记
一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...
- 微软的100道算法面试题(终结版)
前言 数据结构与算法的重要性已不言而喻,最近,我整理出十大经典排序算法.五大常用算法总结,今天特意整理出微软面试的100题,若有不足之处,欢迎指正!由于篇幅过长,前30道题目写在上一篇,大家可以进我的 ...
最新文章
- 2021年高考模拟考成绩查询,2021年湖北省普通高考模拟考试成绩查询
- python可以自学吗-没有编程基础,可以自学Python吗?
- Effective_STL 学习笔记(八) 永不建立 auto_ptr 的容器
- spring是如何管理 事务的
- 2016年将是Java终于拥有窗口函数的那一年!
- 优秀的代码原来是这样分层的
- cad加载dll_你的CAD为什么安装不上?进来看看你就知道了
- 一种简单好用的Vue表单验证
- 基于机器视觉的曼秀雷敦洗发水瓶印刷缺陷检测
- 【C#每日一帖】【转】提高编码效率的一些经验
- mysql截取身份证号前几位_EXCEL中怎样截取身份证号前六位数字
- AI笔刷:600+专业ai笔刷套装
- 基于Java Web的航空售票管理系统(酒店管理系统,图书管理系统、学生管理系统)
- WordPress系列教程(二)----WordPress基本使用和常用设置
- CTFshow - 七夕杯复现
- 计算机操作中常用的几种快捷方式,常用的30个电脑快捷操作技巧
- 奋斗吧,程序员——第十六章 笑渐不闻声渐悄,多情却被无情恼
- ccf 201903-5 317号子任务【60分】
- matlab中制作软件,在matlab app designer中制作多个3d图形动画
- 统计学习三要素个人理解