总结-java 使用Random产生规定区间内的随机数

java 使用Random产生规定区间内的随机数

都知道可以使用java.util.Random 产生一个随机数。通过指定参数,使得产生一个小于次数的随机数。值的范围为:[ 0, Max) ; 其中Max 就是指定的参数。但是业务需求想产生一个 [ 10, 100]; 内的随机数怎么产生呢。这个问题极其了我的兴趣。
其实他是个二元一次方程。通过解方程,得到了他的公式,下面是我推导的公式。

【Min, Max】= random(Max – Min +1) + Min 推导过程
题目:已知random方法能返回一个【0, Max-1】左闭右闭的随机数。其中Max是个确定值, 即:【0, Max-1】= random(Max)
求random返回一个固定范围的左闭右闭的随机数。即:求解【Min, Max】= random(x) + y 中的x , y。即求【Min, Max】= random(x) + y中的x, y。

解:分析题意:由题意:【0, Max-1】= random(Max)
可将x未知数带入得(1);题意中问题也是一个恒等式。这样就得到了两个等式。两个未知数。这样就能得到答案。

(1): 由题意得恒等式(1):【0, x-1】 = random(x) 
(2): 由题意得恒等式(2):【Min, Max】= random(x) + y
(3):  将(1)带入(2)得 如下式子
		 【Min, Max】= 【0, x-1】+ y
(4):    由(3)知道:两个区间相等, 则两个区间的首位必相等。得如下式子:
(5)	 y = Min;
(6):    Max = x – 1 +y
(7):    由(5), (6)得到x, y,的值为
(8):    y = Min 
(9):    x = Max – Min +1
(10):   得答案:【Min, Max】= random(Max – Min +1) + Min

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值