我在Android上開發應用程序時遇到了問題。然而,問題是:算法:將y球放入x盒子中,其中x <= y
有x
盒和y
球,其中x <= y
,我要分發的球,把它們放在箱子裏面爲了。例如:3盒; box A
,box B
和box C
- 和5個球; ball 1
,ball 2
,ball 3
,ball 4
,ball 5
。
我需要的是把第一球ball 1
內box A
和ball 5
內box C
和其他球他們全部之間分配(如果一個盒子有比別人更多的球並不重要)。這是一個循環(缺少增量值),模擬問題:
int boxCount = 0; // first box is 0 and last box is x
int numOfBalls = y;
for(int i = 0; i < numOfBalls; i++, boxCount += ???)
{
boxes.get(boxCount).add(balls.get(i));
}
我應該用來代替???
什麼公式來解決這個問題?
編輯:
由於x <= y
,這意味着:
- 的箱子沒有應爲空。
- 的不應該超過1
EDIT2
通過in order
盒子球數之間的差異,我的意思是這樣的:
A B C
---------
1 3 5
2 4
不
A B C
---------
1 2 3
4 5
只是爲了澄清,你想要在球盒上均勻分佈球嗎? – 2012-04-09 20:08:58
boxCount = i%nbrOfBoxes; – matsev 2012-04-09 20:09:07
@YetAnotherGeek如果一個盒子的球比其他球多,那並不重要。 – 2012-04-09 20:10:08