给定一个n位数字组成的数JAVA_java – 在给定范围内生成总和为给定总和的N个随机数...

第一次在Stackoverflow.我希望有人可以帮助我搜索一个算法.

我需要在给定的范围内生成N个随机数,总和到给定的数值!

例如:Generatare 3个数字,总和为11.

范围:

> 1到3之间的值.

> 5到8之间的值.

> 3到7之间的值.

这个例子的生成数字可以是:2,5,4.

我已经搜索了很多,找不到我需要的解决方案.

或者通过产生N个随机值,将它们相加,然后将常数和除以随机和,然后将每个随机数乘以该商G0001.

主要问题,为什么我不能采用这些解决方案是我的每个随机值都有不同的范围,我需要这些值与范围均匀分布(例如,在最小/最大值时不发生频率发生,如果我切断值其小于/大于最小/最大).

我也想到了一个soultion,取一个随机数(在该例子中,值为1,2或3),生成范围内的值(min / max或min之间),剩余的总和取决于哪个更小),减去我给定总和的数量,并保持一切,直到一切都分布.但是这将是可怕的无效.我真的可以使用算法的运行时间固定的方式.

我试图让它运行在Java.但是,该信息不是importend,除非有人已经有一个解决方案准备好了.所有我需要的是一个算法的描述或想法.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值