quintopia在这里发布了计算多项式系数的挑战(此处的某些文本是从此处复制的)。有一个有趣的算法可以计算系数2的多项式。
给定数字列表k 1,k 2,...,k m,输出多项式系数的余数:
降低模2.下列算法并此有效地:对于每个ķ 我,计算的二进制展开ķ 我,即,找到一个IJ,使得每个一个IJ是1或0和
如果存在j使r≠s 的rj = a sj = 1,则相关的mod 2多项式系数为0,否则mod 2多项式系数为1。
任务
编写一个程序或函数,该程序或函数采用m个数字k 1,k 2,...,k m,并输出或返回相应的多项式系数。如果需要,您的程序可以选择将m作为附加参数。
这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他方式输入,只要多项式系数的实际计算是由您的代码执行的,而不是由编码过程执行的。
如果多项式系数为奇数,则输出可以为任何真值,如果多项式系数为偶数,则输出可以为任何假值。
不允许设计用于计算多项式系数的内置函数。
有标准漏洞。
计分
这就是代码高尔夫:以字节为单位的最短解决方案获胜。
例子:
为了找到7、16和1000的多项式系数,我们对它们分别进行二进制扩展:
由于没有列具有不超过1的列,因此多项式系数是奇数,因此我们应该输出真实值。
为了找到7、16和76的多项式系数,我们对它们分别进行二进制扩展:
由于76和7的二进制扩展均为4,因此多项式系数为偶数,因此我们输出了falsey值。
测试用例:
Input: [2, 0, 1]
Output: Truthy
Input: [5,4,3,2,1]
Output: Falsey
Input: [1,2,4,8,16]
Output: Truthy
Input: [7,16,76]
Output: Falsey
Input: [7,16,1000]
Output: Truthy
Input: [545, 1044, 266, 2240]
Output: Truthy
Input: [1282, 2068, 137, 584]
Output: Falsey
Input: [274728976, 546308480, 67272744, 135004166, 16790592, 33636865]
Output: Truthy
Input: [134285315, 33849872, 553780288, 544928, 4202764, 345243648]
Output: Falsey
==
如果允许翻转真假,那么几种平等的语言本可以节省一个字节。