java将某个数按比例分配应用题,[Java教程]按比例分配资源

该博客介绍了一种在Java中按比例分配资源的方法,特别是在资源请求非同时到达时。作者提出将分配比例视为概率,通过生成随机数来决定资源分配给哪个应用。例如,若比例为2:3:5,则对应应用A、B和C,当新资源请求到来时,根据20%、30%和50%的概率分配给它们。文中提供了相应的Java代码示例来实现这一逻辑。
摘要由CSDN通过智能技术生成

[Java教程]按比例分配资源

0

2014-08-22 18:00:56

现在项目中需要将某一资源按比例分配给不同的应用处理,比如10个资源请求,按2:3:5分配给A、B和C三个应用服务器处理,那么就是A应用处理2个资源请求,B应用处理3个资源请求,C应用处理5个资源请求。问题是10个资源请求不是同时到达,而是一个一个的分配处理,此时就不能定量的分配处理。目前想到的实现方式是将分配比例看作概率,然后利用随机数产生概率事件决定由哪个应用处理资源。还是上面的例子,就是某一个资源有20%的概率给A处理,30%的概率给B处理,50%的概率给C处理。以下为JAVA实现的代码:1 // 定义App数组 2 String[] sApps = new String[]{}; 3 4 /* 5 * 定义分配比例数组,值为1~100间的整数 6 * 分配比例数组元素下标与App数组元素下标对应 7 * 数组中所有元素的值之和等于100 8 */ 9 int[] iRates = new int[]{};10 11 // 定义随机数,随机数区间为[1,100]中的整数 12 int rndNum = new Random().nextInt(100) + 1;13 14 int iStart = 1; // 区间起始位15 int iEnd = 0; // 区间结束位16 17 /*18 * 将100分成App个数个连续区间19 * 每个App分配比例对应一个区间20 * 循环判断产生的随机数在哪个区间21 */22 for (int i = 0; i < iRates.length; i++) 23 {24 iEnd = iEnd + iRates[i];25 26 if (iStart <= rndNum && rndNum <= iEnd) 27 {28 System.out.println("Winner:"+sApps[i]);29 break;30 }31 32 iStart = iStart + iRates[i];33 }

可能还有其他好的实现方式,以后想到再添加。

(That's all)

本文网址:http://www.shaoqun.com/a/98967.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值