我有一个元素列表,每个元素都是从1到6的随机生成的数字。我希望尽可能多地使用尽可能多的数字来形成6个数字。
例如,从此列表中:
[4, 1, 1, 2, 3, 3, 6, 6, 6]
我将在这里有5个6。除了现有的三个6,我可以再形成两个6'
对于第二种情况,首选组合(4,1,1),因为它使用的数字多于(4,2)。
如何使用尽可能多的数字编写一个采用数字列表并且尽可能多地返回6个数组的算法?
目前我从这种方法开始:从最大数字开始,然后继续添加下一个最大数字,直到达到6。但我意识到这种方法无法为组合选择最多的数字。
==
编辑:组合中使用元素后,该元素不能再用于后续组合。
最重要的目标是尽可能多地形成6个。另一个目标(尽可能少的剩余)是次要的。