Locked 。这个问题及其答案是locked /help/locked-posts 因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。
编写最短的程序来计算给定正数集的弗罗贝尼乌斯数。弗罗贝尼乌斯数是不能写成集合中数字的正倍数之和的最大数字。
Example: For the set of the Chicken McNuggetTM sizes [6,9,20] the Frobenius number is 43, as there is no solution for the equation a*6 + b*9 + c*20 = 43 (with a,b,c >= 0), and 43 is the largest value with this property.
可以假设给定集合存在弗罗贝尼乌斯数。如果情况并非如此(例如 [2,4]),则不会出现任何特定行为。
参考:
http://en.wikipedia.org/wiki/Coin_problem http://en.wikipedia.org/wiki/Coin_problem
http://mathworld.wolfram.com/FrobeniusNumber.html http://mathworld.wolfram.com/FrobeniusNumber.html
[编辑]
我决定接受 GolfScript 版本。虽然 MATHEMATICA 版本可能被认为“技术上正确”,但它显然会剥夺比赛的乐趣。也就是说,其他解决方案也给我留下了深刻的印象,尤其是 Ruby(这是通用语言的缩写)。
Mathematica 0 个字符(或 19 个字符,计算调用命令)
调用方式为
FrobeniusNumber[{a,b,c,...}]
Example
In[3]:= FrobeniusNumber[{6, 9, 20}]
Out[3]= 43
是记录吗? :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)