Algorithm 构成序列的数之和
昨晚看橄榄球赛的时候,我想知道如果你只能在3分、5分或7分的比赛中得分的话,是否有任何分数是不可能的。没过多久,我们就知道任何大于4的数字都是可以实现的。5=5,6=3+3,7=7,8=3+5,9=3+3+3,10=5+5等等 将该想法扩展到5、7和9会得到以下可能的分数:Algorithm 构成序列的数之和,algorithm,language-agnostic,discrete-mathematics,Algorithm,Language Agnostic,Discrete Mathematics,昨晚看橄榄球赛的时候,我想知道如果你只能在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
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();
对于所有a<10:
对于所有b<10:
对于所有c<10:
增加(3a+5b+7c);
list.sort_minimate_first();
然后检查列表中是否有大于3的序列(可能的最小分数)。除了琐碎的情况外,任何事情似乎都是不切实际和缓慢的。只有一个无法达到的数字,超过这个数字,所有分数都是可以达到的 这叫做弗罗贝尼乌斯数。见: wiki页面应具有用于解决该问题的算法的链接,例如: 对于2个数字a、b,一个精确的公式(ab-a-b)是已知的(您可以使用它来减少搜索空间),对于3个数字a、b、c,一个尖锐的下限(sqrt(3abc)-a-b-c)和相当快的算法是已知的 如果这些数字是算术级数,那么一个精确的公式是已知的(见维基)。我之所以提到这一点,是因为在你们的例子中,所有的数字都是算术级数 因此,要回答你的问题,请找到Frobenius数并加上1
希望能有帮助。+1看橄榄球赛,如果可以的话,如果你是十字军球迷,我会再给你一个。问得好-在他们提高分数尝试之前,不可能得到19分。非常感谢。这篇维基文章使用了这个确切的例子,给人留下了深刻的印象。关于这件事,有一个关于高尔夫的问题。这是非常奇怪的,这是我在同一时间打开的唯一一页,他们都提到了一些我从未听说过的东西。真是巧合。