面试题之获取start到end之间的随机数
来源:互联网 发布:netgear网络存储 编辑:程序博客网 时间:2024/04/29 23:45
需求
设计一个方法,获取start到end之间的随机数!
分析
- Math.random()方法获取0~1之间的随机数,不包含1,返回值类型为double。
- 获取1~100之间的随机数我们这么做;
int num=Math.random()*100+1; - 假想1:如果我们要取start到end之间的随机数,那么是不是可以写成:
int number=(int)(Math.random()*end+start)? - 假想2:如果我们要取start到end之间的随机数,那么是不是可以写成:
int number=(int)(Math.random()*(end-start+1)+start)?
Demo1
package cn.edu.pzhu_01;import java.util.Scanner;public class MathTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入start:"); int start=sc.nextInt(); System.out.println("请输入end:"); int end=sc.nextInt(); for (int i = 0; i < 100; i++) { int x=1; System.out.print(getRandom(start,end)+","); } } public static int getRandom(int start, int end) { return (int)(Math.random()*end+start); }}
注:由于运行过程中出现了比end还大的数,即不在范围内的数,所以假想1不合理。
Demo2
package cn.edu.pzhu_01;import java.util.Scanner;/** * 面试题:设计一个方法,获取start到end之间的随机数 * * 分析 * A:从键盘录入数据 * B:调用方法 * C:输出结果 * */public class MathTest { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入start:"); int start=sc.nextInt(); System.out.println("请输入end:"); int end=sc.nextInt(); for (int i = 0; i < 100; i++) { int x=1; System.out.print(getRandom(start,end)+","); } } public static int getRandom(int start, int end) { return (int)(Math.random()*(end-start+1)+start); } }
注:经过多次测试,产生的结果均在start~end范围内,假想2合理。
结果
产生start~end之间的随机数的方法封装为:
public static int getRandom(int start, int end) { return (int)(Math.random()*(end-start+1)+start); }
0 0
- 面试题之获取start到end之间的随机数
- 获取0到max之间的随机数
- 一道面试题:生成50个1到100之间的随机数,并且对其中的偶
- 百度最新面试题:现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来
- 10.百度最新面试题:现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。
- 随机数的相关面试题
- 随机数的相关面试题
- 剑指offer面试题之求1到n之间1的个数
- Android入门-Service-start,end,bind,unbind之间的区别
- java面试题之 城市之间路段的问题
- 线程面试题之二:子线程之间的同步
- 面试题之求两个日期之间的天数差
- 转面试题(有关随机数的)
- 论坛看到的一个随机数面试题
- java 面试题 请设计一个方法,可以实现获取任意范围内的随机数
- gravity的start、end
- pb 获取两个数之间的随机数
- 获取两个数之间的一个随机数
- redis命令及操作记录以及redis的五种数据类型介绍
- java反射机制&动态代理
- zookeeper安装
- Linux-网络分析-netstat
- Android (1)—Activity
- 面试题之获取start到end之间的随机数
- AndroidStudio导入他人项目时报出:Error:(1, 0) Your project path contains non-ASCII characters错误
- 创建可以回调主程序接口的动态库
- Linux-网络分析-tcpdump
- 旋转数组的最小值:求中间值我竟然求错。
- Android的消息机制(一)
- CCF CSP 编程题目和解答-----试题名称:模板生成系统 -------201509-3
- HHKB使用心得
- Ancient Go