permutaion题解

来源:互联网 发布:java中package的作用 编辑:程序博客网 时间:2024/06/09 19:39

  第一个问题有解当且仅当 n 是奇数。一个合法的方案为 A(x)=B(x)=x,C(x)=2x (mod n)
  下面证明当 n 为偶数时无解:
  

xsA(x)=xsB(x)=xsC(x)=x=0n1x=(n1)n2=n2 (mod n)

  如果对于所有 xs,A(x)+B(x)=C(x) (mod n),这意味着
  
xsA(x)+B(x)=xsA(x)=xsB(x)=xsC(x) (mod n)

  但是,n2+n2=0n2 (mod n),所以无解。
  
  第二个问题有解当且仅当 n2
  如果 n2,A=B=C=I是一组合法的解。
  为了证明其他情况无解, n 必须满足一些条件:
  1. n 没有平方因子,所以不能被 4 整除。
  如果上述条件不成立,存在一个质数 p ,使得 p2|n 。这里有 np1pS 中的数不能被 p 整除。如果 C(x) 属于这个集合,那么 A(x)B(x) 也属于这个集合,因为 A(x)×B(x)=C(x) (mod n) 。这说明这 np1p 个数会被 A(x)B(x) 用完。换句话说, p|A(x)p|B(x)p|C(x) 。现在考虑怎样的 x 可以得到 C(x)=pA(x)B(x) 必须同时被 p 整除,所以 C(x) 必须被 p2 整除。这里就矛盾了。
  2. n 不能被 k×o 整除。这里 kp2p (p是奇质数),o 是一个奇数。
  我们先考虑这些数模 k 。如果 A(x)Zk ,这说明 C(x)Zk 。同样的,如果 A(x)Zk ,也说明 C(x)Zk 。因为这些函数是双射函数。这表明 A(x)ZkB(x)ZkC(x)Zk 。我们只考虑这些 x 。因为 Zk 是循环的,我们可以选择一个生成元 g ,构造新的函数 A,BC ,这样 gA(x)=A(x) (mod k)BC 同理。A,BC 的值域为 [0,p1) 且这里面的每个数出现了刚好 o 次。此外,这说明这些情况满足条件:对于每一个 x,A(x)+B(x)=C(x) (mod p1) 。用第一部分的结论,无解。
  3. 旁注
  XXXXX
  让 m=np, T={m,2m,(p1)m} 。注意到
A(x)TB(x)TC(x)T

  考虑这些等式:
  
x|A(x)TA(x)=x|A(x)TB(x)=x|A(x)TC(x)=x=1p1x=1 (mod p)

  (最后一步用了威尔逊定理)
  
x|A(x)TC(x)=x|A(x)TA(x)×B(x)=x|A(x)TA(x)×x|A(x)TB(x) (mod p)

  所以 1×1=1 (mod p),说明 p=2 ,不是偶数。
  
  唯一满足前两个条件且 n>1n2

  第三个问有解当且仅当 n4,或者 n>4n=2p 。这里 p 是一个质数且 p1 无平方因子。
  n4 的情况可以通过搜索搜出来。对于 n>4 ,考虑以下条件:
  1. n 不能是质数。
  如果 n 是质数:
 

A(x)=1B(x)=0C(x)=1

 
A(x)=0B(x)=n1C(x)=0

  我们可以用类似前面方法(mod n1) ,得到 n1=2 ,这是 n4 的情况。
  2. n 不能有平方因子
  如果对于一些质数 pp2|n ,那么如果 p|A(x)B(x)>1 会有 p2|C(x) ,换句话说, pA(x)p2C(x) 。这说明当且仅当 B(x)=0 或者 B(x)=1 会导致 p2C(x)p|C(x) 。注意到, A(x)=1B(x)=0C(x)=1 ,这说明只有一种情况会导致 p2C(x)p|C(x) 。显然这对于所有 n>4 都是不存在的。
  3. 如果 n 是一个合数,它一定是 2p 的形式(p是质数)
  我们已经确定 n=pkpk 互不相同)。如果一个数在模 n 的剩余系中时平方剩余的,那么它在所有模 pk 的剩余系中都是平方剩余的。这说明在模 n 的剩余系中有 pk+12 。但是, B(x) 有一半的值是偶数,所以 C(x) 至少一半的值是平方剩余的。所以 n 一定是 2p 的形式。
  4. 如果 n=2pp 是奇质数),p1必须无平方因子。
  我们反过来考虑,如果有一个质数 q ,满足 q2|p1 。我们把模 n 的剩余系分开,一部分是偶数,一部分是奇数(忽略 0p)。两个集合各有 p1 个数。我们称生成元为 g0g1A(x) 和对应的 C(x) 必须在同一个集合内。我们考虑 AC 的离散对数(分别称为 AC)。对于剩下的 xA(x)×B(x)=C(x) (mod p1) (注意 A(x)=0C(x)=0A(x)=pC(x)=p
  我们知道如果 qC(x) 会有 qA(x)qB(x)A(x)C(x) 中出现了所有 0p1 之间的数,每个数出现了两次。B(x) 中包括这些数加上 01 。对于任意一个能被 q 整除但不能被q2 整除的 C(x) 只能够被归到有空位的 B(x) 中(其他的都被 A(x) 占了)。这说明只有一个 C(x) 能够被 q 整除但不被 q2 。但是,每个 qC(x) 中出现了两次,这是不合法的。
 
  题解剩下的部分构造了一些合法的解。 

原创粉丝点击