例如 一個數(shù)字100,怎么把100隨機(jī)分成一個數(shù)組,并且這個數(shù)組里的和是100,并且這個數(shù)組里的每個數(shù)字差都不會太大,比如100拆成10,20,15,20,5,30。數(shù)組和一定是int類型。求解。
1 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
設(shè)數(shù)字為N,和的范圍為1-N。
1-N之間是若干節(jié)點(diǎn)(位置),假設(shè)為a,b,c。
線的長度是N,N的長度=各個線段的和
也就是N=(N-c)+(c-b)+(b-a)+(a-0);
SO,可以得出a,b,c就是你要的三個數(shù)。
同理,你可以根據(jù)自己的需要改成a...n-1個節(jié)點(diǎn),可以是三個數(shù),也可以是四個數(shù),可以隨機(jī)出一個1至(n-1)的數(shù)
“每個數(shù)字差都不會太大”,這個就得另外寫邏輯了,做減法判斷差,如果超過你的指定值,重新隨機(jī),如此循環(huán)xx下(或者根據(jù)XX下選擇差最小的那組)
- 1 回答
- 0 關(guān)注
- 1386 瀏覽
添加回答
舉報(bào)
0/150
提交
取消