黑马程序员技术交流社区

标题: 关于银行业务调度系统 里面的随机数 是张老师讲错了还是我理解错了? [打印本页]

作者: zczcyc0201    时间: 2012-10-8 20:22
标题: 关于银行业务调度系统 里面的随机数 是张老师讲错了还是我理解错了?
张老师的视频教程 银行业务调度系统
其中的ServiceWindow类,其中有一行代码是要表达处理业务所需时间,要求产生一个1000-10000的随机数,也就是1秒至10秒。
public static int MAX_SERVICE_TIME = 10000;        
public static int MIN_SERVICE_TIME = 1000;
int maxRandom = MAX_SERVICE_TIME - MIN_SERVICE_TIME;
int serviceTime = new Random().nextInt(maxRandom)+1 + MIN_SERVICE_TIME;
据我实验,张老师的这个代码随机生成的数字中不包含1000,只能生成1001-10000;
要想生成1000-10000,必须写成这样
int serviceTime = new Random().nextInt(maxRandom+1) + MIN_SERVICE_TIME;
也就是把1写在括号里面,才能生成1000这个数。
是我错了还是老师代码写错了,求解啊
作者: zczcyc0201    时间: 2012-10-8 20:24
我总结的经验是
A>B 随机生成A和B之间且包含A和B的值
应该这样写 int i = new Random().nextInt(A+1-B)+B;
i即为B-A之间且包含A和B的随机数


作者: 柏占肖    时间: 2012-10-8 20:35
呵呵……目测是你对了,唉……张老师一天那么累,这是难免的嘛
作者: zczcyc0201    时间: 2012-10-8 20:41
柏占肖 发表于 2012-10-8 20:35
呵呵……目测是你对了,唉……张老师一天那么累,这是难免的嘛

我没说老师讲得不好 张老师讲得很好 只是讨论一下问题 呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2