昨晚看橄榄球比赛时,我想知道是否有任何分数是不可能的,因为您只能在 3、5 或 7 的批次中得分。很快就发现任何大于 4 的数字都是可以达到的。5=5、6=3+3、7=7、8=3+5、9=3+3+3、10=5+5等等。
将这个想法扩展到 5、7 和 9 会产生以下可能的分数:
5,7,9,10,12,14 // and now all numbers are possible.
对于 7、9 和 11:
7,9,11,14,16,18,20,22,23,25,27 // all possible from here
我在脑海中做了这些,任何人都可以提出一个好的算法来确定可能的最低分数,在给定一组分数的情况下,所有分数都可以达到。
我是这样建模的:
forall a < 10:
forall b < 10:
forall c < 10:
list.add(3a + 5b + 7c);
list.sort_smallest_first();
然后检查列表中是否有超过 3 的序列(可能的最小分数)。对于琐碎案例之外的任何事情,似乎都非常不切实际和缓慢。