我已经解决了 usaco 上的问题掘金。我到了需要证明这一点的地步:
如果我们有一个S
包含数字的集合,(0,1,2,3,...P-1)
其中P
是质数。如果我们将这个集合相乘,* X [where X and P are co-primes (relative primes)]
我们将得到相同的集合S
,也许有不同的排列,但我们会得到相同的元素。乘法后,我们将取mod P
集合中的每个元素。
这是任何定理,还是可以证明与此有关?
假设,有i
和j
其中(0,1,2,3,...P-1)
产生相同的值lambda a: (a*x)%p
。
然后
i*x = j*x mod p
=> i*x - j*x = 0 mod p
=> (i - j)*x = 0 mod p
如此p
划分(i-j)*x
。现在p
和x
互质,所以p
不除x
。所以p | i - j
现在注意,i
两者j
都小于p
。所以i - j
也小于p
。所以p
不能除i - j
,除非,它是zero
。所以i - j = 0
=> i = j
。
因此,如果i
和j
产生相同,i = j
。所以当i != j
,i
和j
产生不同的整数。所以对于每个i
in (0,1,2,3,...P-1)
,lambda a: (a*x)%p
产生不同的整数。所以如果你在一个集合中收集整数,这个集合必须有p
元素。但所有整数都必须小于p
。因此该集合包含来自 的每个元素(0,1,2,...P-1)
。
备注:p
不一定需要是素数。一切都需要,p
并x
成为共同的。