黑马程序员技术交流社区

标题: 在张老师的银行业务调度系统中的小问题 [打印本页]

作者: 李啸    时间: 2012-5-16 23:26
标题: 在张老师的银行业务调度系统中的小问题
本帖最后由 李啸 于 2012-5-16 23:34 编辑
  1. int maxRandom = Constants.MAX_SERVICE_TIME - Constants.MIN_SERVICE_TIME;
  2.                         int serviceTime = new Random().nextInt(maxRandom)+1 + Constants.MIN_SERVICE_TIME;//这里的业务办理时间到底随机了多少到多少秒 为什么要这样写 视频里张老师没给讲清楚 给解释一下 实在是想不通
复制代码

作者: 袁冬梅    时间: 2012-5-16 23:44
  1.                         int maxRandom = Contants.MAX_SERVICE_TIME - Contants.MIN_SERVICE_TIME;
  2.                         costTime =  new Random().nextInt(maxRandom)+Contants.MIN_SERVICE_TIME+1;                ////+1是为了确保10秒这个时间点也能够有产生的可能性。当maxRandom == 8999时,costTime就等于10000.
复制代码
maxRandom的取值是9000ms
那么,new Random().nextInt(maxRandom)的取值范围就是 0-8999,
////+1是为了确保10秒这个时间点也能够有产生的可能性。当maxRandom == 8999时,costTime就等于10000

new Random().nextInt(maxRandom)+Contants.MIN_SERVICE_TIME+1;        的取值就是1000-10000
整一个表达式为的是保证取到的普通窗口和VIP服务的时间为1s-10s,希望能帮到你,O(∩_∩)O~
作者: 李啸    时间: 2012-5-17 00:16
袁冬梅 发表于 2012-5-16 23:44
maxRandom的取值是9000ms
那么,new Random().nextInt(maxRandom)的取值范围就是 0-8999,
////+1是为了确保 ...

嗯 明白了 那在MainClass程序里面快速窗口的定时器里面每隔CUSTOMER_COMMON_INTERVAL_TIME*2(我的意思这里是*3)这个时间为什么和VIP窗口的时间CUSTOMER_COMMON_INTERVAL_TIME*6 对不上号
作者: 袁冬梅    时间: 2012-5-17 00:23
囧,没问题的,这个其实很好懂,举个例子就搞定了
普通客户 :快速客户: VIP客户 = 6 :3  :1
假设生成普通客户的时间为1秒
那么【随机生成普通客户、快速客户、VIP客户的时间就为:1秒,2秒,6秒  】
你可以用6秒为时间点,呢么6秒生成的客户的个数就可以知道它们随机生成的时间的比例了。
作者: 李啸    时间: 2012-5-17 00:27
袁冬梅 发表于 2012-5-17 00:23
囧,没问题的,这个其实很好懂,举个例子就搞定了
普通客户 :快速客户: VIP客户 = 6 :3  :1
假设生成 ...

555555......还是没懂 能不能再说通俗一点
作者: 袁冬梅    时间: 2012-5-17 00:33
囧,你乘以3之后,表示你6秒只能生成2个快速客户,而6个普通客户,1个VIP客户
那么你生成客户的比例就是普通:快速:vip = 6/6 : 2/6 : 1/6 = 1 : 1/3 : 1/6 = 6/6 : 2/6 : 1/6 = 1:2:6   
呼,能看懂了么,你乘以3之后,你客户的生成比例是错误的,所以,咳咳,兄弟数学要仔细啊,咳咳- -。
作者: 李啸    时间: 2012-5-17 00:48
袁冬梅 发表于 2012-5-17 00:33
囧,你乘以3之后,表示你6秒只能生成2个快速客户,而6个普通客户,1个VIP客户
那么你生成客户的比例就是普 ...

  嗯嗯 明白了 刚才是把那个2当成秒数了 绕进去了  很感谢




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