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

例如 一个数字100,怎么把100随机分成一个数组,并且这个数组里的和是100,并且这个数组里的每个数字差都不会太大,比如100拆成10,20,15,20,5,30。数组和一定是int类型。求解。


aluckdog
浏览 1321回答 1
1回答

慕勒3428872

设数字为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下选择差最小的那组) 
打开App,查看更多内容
随时随地看视频慕课网APP