我试图为给定的问题编写一个算法:
我们得到一组数字{n1,n2,n3,n4,n5……}
我们必须检查一下,我们能不能用给定的数字加和减得到一个数字(比如X)x总是小于给定集合的所有元素。
如。
集合:{2,3,4,6,9}
给定数字:1,结果:是
9-4-4=1
集合:{3,4,6,9}
给定数字:2,结果:是
6-4=2
提前谢谢。

最佳答案

实际上,您正在寻找由集合中的数字生成的ideal。这些整数形成一个principal ideal domain,这意味着每个理想都是由一个整数生成的你所要做的就是找到这个整数——比如G——并检查X是否可以被G除数。找到G也很容易——它是集合中所有元素的最大公约数,可以使用Euclidean algorithm找到。
示例集可以通过加法和减法生成每个整数,因为可以生成1例如,对于集合{3,4,6,9},您有1=4-3,任何整数n都可以写成n乘以4-3的和。

09-25 21:22