执行摘要:测试一个整数的输入序列是否“可接受”,这意味着它不包括任何模数的所有剩余类。
给定一个整数m≥2,剩余类模m就是一般差分m的m个可能的算术级数。例如,当≥时,4个剩余类模4是
..., -8, -4, 0, 4, 8, 12, ...
..., -7, -3, 1, 5, 9, 13, ...
..., -6, -2, 2, 6, 10, 14, ...
..., -5, -1, 3, 7, 11, 15, ...kth残差类由其除以m等于k的所有整数组成(只要对负整数正确定义“余数”)。
一个整数序列a1,a2,.,ak是容许模m,如果它不能相交至少一个剩余类。例如,{0,1,2,3}和{- 4,5,14,23}不是容许模4,但{0,1,2,4}和{0,1,5,9}和{0,1,2,-3}是可容许模4。此外,{0,1,2,3,4}是不可容许的模4,而{0,1,2}是可容许模4。
最后,如果一个整数序列是每一个整数m≥2的可容许模m,则它是简单可接受的。
挑战
编写以整数序列为输入的程序或函数,如果序列是可接受的,则返回(一致) Truthy值;如果序列不可接受,则返回(一致) Falsy值。
整数的输入序列可以是任何合理的格式。您可以假设输入序列至少有两个整数。(如果需要,还可以假设输入整数是不同的,尽管它可能没有帮助。)您必须能够处理正整数和负整数(和0)。
通常的密码-高尔夫评分:最短的答案,以字节为单位,获胜。
以下输入序列应分别给出一个真实值:
0 2
-1 1
-100 -200
0 2 6
0 2 6 8
0 2 6 8 12
0 4 6 10 12
-60 0 60 120 180
0 2 6 8 12 26
11 13 17 19 23 29 31
-11 -13 -17 -19 -23 -29 -31以下输入序列应分别给出一个Falsy值:
0 1
-1 4
-100 -201
0 2 4
0 2 6 10
0 2 6 8 14
7 11 13 17 19 23 29
-60 0 60 120 180 240 300设a1,a2,.,ak是整数序列。假设有无穷多个整数,使得n+a1,n+a2,.,n+ak都是素数。那么很容易证明a1,a2,.,ak必须是容许的。实际上,假设a1,a2,…,ak是不可容许的,设m是一个使得a1,a2,…,ak不是容许模m的数,那么无论我们选择哪个n,都必须是m的倍数n+a1,n+a2,…,n+ak,所以不能是素数。
素数k元组猜想是这个命题的逆命题,它在数论中仍然是一个广泛存在的问题:它断言,如果a1,a2,…,ak是一个可容许序列(或k元组),那么应该有无穷多个整数n,使得n+a1,n+a2,…,n+ak都是素数。例如,可容许序列0,2得到的结论是,应该有无穷多个整数n,使得n和n+2都是素数,这是孪生素数猜想(仍未证明)。
发布于 2016-08-14 09:13:08
JḊðḶḟ%@ð€Ạ在网上试试!或运行所有测试用例.
Input: L.
JḊ Range of [2..len(L)].
ð ð€ For x in [2..len(L)]:
Ḷ [0..x-1] (residue classes)
ḟ without elements from
%@ L % x.
Ạ All truthy (non-empty)?发布于 2016-08-14 09:37:28
a=>a.every((_,i)=>!i++|new Set(a.map(e=>(e%i+i)%i)).size<i)使用@KarlNapf的残余物诡计。
发布于 2016-08-14 13:24:42
"X@QGy\un>vTruthy是一个包含所有数组(列向量)的数组。Falsy是一个包含至少一个零的数组。您可以使用此链接检查这些定义。
在网上试试!或验证所有测试用例:特鲁西,虚妄 (稍加修改的代码,每个案例产生一个水平向量以提高清晰度)。
" % Take input array. For each; i.e. repeat n times, where n is arrray size
X@Q % Push iteration index plus 1, say k. So k is 2 in the first iteration,
% 3 in the second, ... n+1 in the last. Actually we only need 2, ..., n;
% but the final n+1 doesn't hurt
G % Push input again
y % Duplicate k onto the top of the stack
\ % Modulo. Gives vector of remainders of input when divided by k
un % Number of distinct elements
> % True if that number is smaller than k
v % Vertically concatenate with previous results
% End for each. Implicitly display https://codegolf.stackexchange.com/questions/89786
复制相似问题