为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现一个数字随机分成一个数组

如何实现一个数字随机分成一个数组

aluckdog 2018-07-30 07:10:53
例如 一个数字100,怎么把100随机分成一个数组,并且这个数组里的和是100,并且这个数组里的每个数字差都不会太大,比如100拆成10,20,15,20,5,30。数组和一定是int类型。求解。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

设数字为N,和的范围为1-N。

1-N之间是若干节点(位置),假设为a,b,c。

线的长度是N,N的长度=各个线段的和

也就是N=(N-c)+(c-b)+(b-a)+(a-0);

SO,可以得出a,b,c就是你要的三个数。

同理,你可以根据自己的需要改成a...n-1个节点,可以是三个数,也可以是四个数,可以随机出一个1至(n-1)的数

“每个数字差都不会太大”,这个就得另外写逻辑了,做减法判断差,如果超过你的指定值,重新随机,如此循环xx下(或者根据XX下选择差最小的那组)

 

https://img1.sycdn.imooc.com//5b78d8a900010ab406580780.jpg

查看完整回答
反对 回复 2018-08-19
  • 1 回答
  • 0 关注
  • 1320 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信