假设我有10个盒子和4种不同类型的彩球:黑色,蓝色,红色,绿色 . 我想在10个盒子中以大致相等的比例分配不同颜色的球 . 例如,一个可接受的解决方案是在10个盒子中放置2个黑色,2个蓝色,3个红色和3个绿色球 .
现在,更具体地说,假设我有10个UIImageViews,以及可变数量的UIImages(Facebook,Twitter,Flickr等)放入这些UIImageViews中 . 如果我允许用户关闭某种类型,则可以有可变数量的类型(全部三种,只有两种,只有一种等) . 是否有一种有效的算法将可变数量的对象分配到静态数量的框中?
我能想到的最直接的方式,但我觉得它非常低效,就是有一个for循环,只需将每种类型的球(UIImage)的数量增加到一个盒子(UIImageView)中,直到球的总数为止等于盒子的数量 . 有没有更好的办法?
1 回答
我想我会按照你的要求去做 .
看起来你正在寻找一种div和mod数学 . 基本上长的分裂和剩余就像我们在二年级学习 . 我担心在目标c中我不知道正确的速记 . 希望有人可以补充一点 .
因此,您知道要为每个框添加每种球类型的
commonNumOfAllBallTypesInBoxes
. 然后你知道在每个方框中为numOfBallTypes
球类型添加一个球 .The results for the above are:
numOfBoxes:11
numOfBallTypes:4
commonNumOfAllBallTypesInBoxes:2
numOfExtraBallTypes:3
And it works for any dynamic:
numOfBoxes:73
numOfBallTypes:11
commonNumOfAllBallTypesInBoxes:6
numOfExtraBallTypes:7
我希望这有帮助 .