Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 鸽子洞问题:将不同类型的UIImages放置到UIImageView中_Iphone_Objective C_Algorithm_Math_Combinatorics - Fatal编程技术网

Iphone 鸽子洞问题:将不同类型的UIImages放置到UIImageView中

Iphone 鸽子洞问题:将不同类型的UIImages放置到UIImageView中,iphone,objective-c,algorithm,math,combinatorics,Iphone,Objective C,Algorithm,Math,Combinatorics,假设我有10个盒子和4种不同颜色的球:黑色、蓝色、红色、绿色。我想把不同颜色的球以大致相等的比例分配给10个盒子。例如,一个可接受的解决方案是在10个盒子中放置2个黑色、2个蓝色、3个红色和3个绿色的球 现在,更具体地说,假设我有10个UIImageView,以及各种类型的UIImages(Facebook、Twitter、Flickr等)可以放在这些UIImageView中。如果我允许用户关闭某个类型,则可以有不同数量的类型(全部三种、只有两种、只有一种等)。是否有一种有效的算法将可变数量的对

假设我有10个盒子和4种不同颜色的球:黑色、蓝色、红色、绿色。我想把不同颜色的球以大致相等的比例分配给10个盒子。例如,一个可接受的解决方案是在10个盒子中放置2个黑色、2个蓝色、3个红色和3个绿色的球

现在,更具体地说,假设我有10个UIImageView,以及各种类型的UIImages(Facebook、Twitter、Flickr等)可以放在这些UIImageView中。如果我允许用户关闭某个类型,则可以有不同数量的类型(全部三种、只有两种、只有一种等)。是否有一种有效的算法将可变数量的对象类型分布到静态数量的框中


我能想到的最直接的方法,但我觉得它非常低效,就是有一个for循环,然后增加每种类型的球(UIImage)的数量,放入一个盒子(UIImageView),直到球的总数等于盒子的数量。有更好的办法吗?

我想我会按照你的要求去做

看起来你在寻找一种div和mod数学。基本上是长除法和余数,就像我们在二年级学的一样。恐怕我不知道objective-c中的正确缩写。希望有人能补充一下

int numOfBoxes = 11;

int numOfBallTypes = 4;

int commonNumOfAllBallTypesInBoxes = numOfBoxes / numOfBallTypes; //this should be an int division result of 2

int numOfExtraBallTypes = numOfBoxes - (commonNumOfAllBallTypesInBoxes * numOfBallTypes); //this should be a remainder of 3)
因此,您知道将每个球类型的
commonNumOfAllBallTypesInBoxes
添加到每个框中。然后,您知道在每个框中为
numOfExtraBallTypes
numOfBallTypes
球类型再添加一个球

上述结果为:

总数:11

数字类型:4

常用球型方框:2

数量类型:3

它适用于任何动态系统:

总数:73

数字类型:11

常用球型方框:6

数字类型:7

我希望这有帮助