数论与组合数学 3Hensel 引理原根

Posted My Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数论与组合数学 3Hensel 引理原根相关的知识,希望对你有一定的参考价值。

Hensel 引理、原根

一、Hensel 引理

  1. Hensel 引理:\\(\\mathsff(x)\\) 是一个整系数多项式 \\(\\mathsf(\\ f(x) \\in Z(x)\\ )\\),对于素数 p,整数 a 使得 \\(\\mathsfp^k \\mid f(a)\\)\\(\\mathsf(\\ f^\'(a),p\\ )=1\\),即 \\(\\mathsff(a)\\equiv 0\\ mod\\ p^k,f^\'(a) \\neq 0\\ mod\\ p\\) 。则在模 p 意义下恰有一个整数 t 使得 \\(\\mathsff(a+tp^k) \\equiv 0\\ (mod\\ p^k+1)\\) 。也就是在模 \\(\\mathsfp^k+1\\) 的意义下有唯一一个解 \\(\\mathsfb \\equiv a\\ (mod\\ p^k)\\)
  • 证明:

    想找的解 \\(\\mathsfb=a+tp^k,t \\in \\0,\\ 1,\\ \\cdots,\\ p-1 \\\\) 在模 \\(\\mathsfp^k+1\\) 下。

    为了验证一个 t 是否满足要求,我们以 a 使用 Taylor 展开式,

    \\(\\mathsff(a+tp^k) \\equiv f(a)+tp^kf^\'(a)+ \\frac(tp^k)^22!f^\'\'(a)+ \\cdots + \\frac(tp^k)^nn!f^n(a)\\)

    因为 f 是整系数多项式,所以 \\(\\mathsf\\fracf^nn! \\in Z\\)

    \\(\\mathsfp^nk \\equiv 0\\ (mod\\ p^k+1)(k \\geq 1)\\),所以 \\(\\mathsff(a+tp^k) \\equiv f(a) + tp^kf^\'(a)\\ (mod\\ p^k+1)\\ (k \\geq 1)\\)

    注意到 \\(\\mathsfp^k \\mid\\mid f(a),p^k \\mid\\mid tp^kf^\'(a)\\),故模 p 下只有一个 t 满足 \\(\\mathsff(a+tp^k) \\equiv 0\\ (mod\\ p^k+1)\\)

  • 例子:

    使用 Hensel 引理找到 \\(\\mathsfx^3-2x \\equiv 1(mod\\ 125)\\) 的一个解

    \\(\\mathsff(x)=x^3-2x-1\\) ,需找到 \\(\\mathsff(x) \\equiv 0\\ (mod\\ 5)\\)

    \\(\\mathsff(0) = -1 \\equiv 4\\ (mod\\ 5)\\)

    \\(\\mathsff(1) = -2 \\equiv 3\\ (mod\\ 5)\\)

    \\(\\mathsff(2) = 3 \\equiv 3\\ (mod\\ 5)\\)

    \\(\\mathsff(3) = 20 \\equiv 0\\ (mod\\ 5)\\)

    \\(\\mathsff(4) = 55 \\equiv 0\\ (mod\\ 5)\\)

    所以,\\(\\mathsfa_1=3,4\\)\\(\\mathsff(x) \\equiv 0\\ (mod\\ 5)\\) 的所有解

    计算 f 的所有导数:\\(\\mathsff^\'(x)=3x^2-2\\)

    \\(\\mathsff^\'(3) = 27-2 = 25 \\equiv 0\\ (mod\\ 5)\\)

    \\(\\mathsff^\'(4)=48-2=46 \\equiv 1\\ (mod\\ 5)\\)

    \\(\\mathsf(f^\'(4))^-1\\equiv 1\\ (mod\\ 5)\\) 所以:

    \\(\\mathsfa_2\\equiv 4-f(4)[f^\'(4)]^-1(mod\\ 25) \\equiv 4-55 \\times 1\\ (mod\\ 25) \\equiv -51\\ (mod\\ 25) \\equiv 24\\ (mod\\ 25)\\)

    \\(\\mathsfa_3 \\equiv 24-f(24)[f^\'(24)]^-1(mod\\ 125)\\equiv 24-13775 \\times 1\\ (mod\\ 125)\\equiv -13751\\ (mod\\ 125)\\equiv -1\\ (mod\\ 125)\\equiv 124\\ (mod\\ 125)\\)

    所以,\\(\\mathsfx=124\\)\\(\\mathsfx^3-2x \\equiv 1\\ (mod\\ 125)\\) 的解。

二、模多项式

  1. 定理:度为 n (多项式的最高次数) 的同余模多项式 \\(\\mathsff(x)\\equiv 0\\ mod\\ p\\) (p 为素数) 至多有 n 个解。
  • 证明:

    上述定理一定适用于度为 0 或 1 的情况。假设它适用于度 \\(\\mathsf< n\\ (n \\geq 2)\\) 的情况。

    如果它没有根,那么结束。否则,假设它有一个根 \\(\\mathsf\\alpha\\)

    \\(\\mathsff(x)\\) 除以 \\(\\mathsfx-\\alpha\\) ,会获得 \\(\\mathsfg(x) \\in Z[x]\\) 和一个常数 r 使得 \\(\\mathsff(x)=g(x)(x-\\alpha)+r\\)

    如果带入 \\(\\mathsf\\alpha\\) 获得 \\(\\mathsff(\\alpha)=(\\alpha-\\alpha)g(\\alpha)+r=r\\)

    这意味着 \\(\\mathsff(\\alpha)=r\\)\\(\\mathsff(x)=(x-\\alpha)g(\\alpha)+f(\\alpha)\\)

    已知 \\(\\mathsff(\\alpha)\\ mod\\ p =0\\),如果 \\(\\mathsf\\beta\\)\\(\\mathsff(x)\\) 的任何其他根,那么将 \\(\\mathsf\\beta\\) 带入带入方程,得到:

    \\(\\mathsff(\\beta)=(\\beta-\\alpha)g(\\beta)+f(\\alpha)\\ mod\\ p\\)

    \\(\\mathsff(\\beta) \\equiv (\\beta-\\alpha)g(\\beta)\\ mod\\ p\\)

    所以 \\(\\mathsf(\\beta-\\alpha)g(\\beta) \\equiv 0\\ mod\\ p\\) ,我们还假设 \\(\\mathsf\\beta \\neq \\alpha\\) ,所以 \\(\\mathsfg(\\beta) \\equiv 0\\ mod\\ p\\)

    所以 \\(\\mathsf\\beta\\)\\(\\mathsfg(x)\\) 的一个根,作为 \\(\\mathsfg(x) \\equiv 0\\ mod\\ p\\) 的一个解

    可知 \\(\\mathsfg(x)\\) 的度为 \\(\\mathsfn-1\\) ,所以通过归纳假设 \\(\\mathsfg(x) \\equiv 0\\ mod\\ p\\) 有最多 \\(\\mathsfn-1\\) 个解

    所以,如果包含\\(\\mathsf\\alpha\\)\\(\\mathsff(x)\\) 至多有 n 个解。

  1. 推论:如果 \\(\\mathsfa_nx^n+a_n-1x^n-1+ \\cdots +a_0 \\equiv 0\\ mod\\ p\\) 的解超过 n 个,那么所有的 \\(\\mathsfa_i \\equiv 0\\ mod\\ p\\)

  2. 定理:令 \\(\\mathsff(x)=x^n+a_n-1x^n-1+ \\cdots + a_0\\)\\(\\mathsff(x)\\equiv 0\\ mod\\ p\\) 正好有 n 个不同的解当且仅当 \\(\\mathsff(x)\\) 除以 \\(\\mathsfx^p-x\\ mod\\ p\\) ,即存在 \\(\\mathsfg(x) \\in Z[x]\\) 作为多项式,使得 \\(\\mathsff(x)g(x) = x^p-x\\ mod\\ p\\)

  • 证明:

    部分1:

    假设 \\(\\mathsff(x)\\) 有 n 个解。那么 \\(\\mathsfn \\leq p\\) 因为在模 p 情况下只有 p 个可能的根。

    \\(\\mathsfx^p-x\\) 除以 \\(\\mathsff(x)\\) 获得 \\(\\mathsfx^p-x=f(x)g(x)+r(x),deg(r)<deg(f)=n\\)

    如果 \\(\\mathsf\\alpha\\)\\(\\mathsff(x)\\) 在模 p 情况下的根,带入 \\(\\mathsf\\alpha\\) 可得:\\(\\mathsf\\alpha^p-\\alpha=f(\\alpha)g(\\alpha)+r(\\alpha) \\equiv 0\\)

    所以,\\(\\mathsf\\alpha\\) 一定是 \\(\\mathsfr(x) \\equiv 0\\ mod\\ p\\) 的一个解

    由于 \\(\\mathsff(x)\\) 有不同的根,\\(\\mathsfr(x)\\equiv 0\\ mod\\ p\\) 有 n 个不同的解

    但是 \\(\\mathsfdeg(r)<n\\) ,所以 \\(\\mathsfx^p-x=f(x)g(x)\\ mod\\ p\\) 并且 \\(\\mathsff(x)\\) 除以 \\(\\mathsfx^p-x\\)

    部分2:

    假设 \\(\\mathsff(x) \\mid x^p-x\\ mod\\ p\\)

    式子 \\(\\mathsfx^p-x \\equiv f(x)g(x)\\ mod\\ p\\) 其中 \\(\\mathsff(x)\\) 是度为 n 的,\\(\\mathsfg(x)\\) 是度为 \\(\\mathsfp-n\\) 的。

    需要证明 \\(\\mathsff(x)\\) 有 n 个不同的解。

    通过之前的定理,\\(\\mathsfg(x)\\) 在模 p 下有至多 \\(\\mathsfp-n\\) 个根。

    如果 \\(\\mathsf\\alpha \\in \\0,\\ 1,\\ \\cdots,\\ p-1 \\\\) 不是模 p 下 \\(\\mathsfg(x)\\) 的根,那么 \\(\\mathsf\\alpha^p-\\alpha \\equiv f(\\alpha)g(\\alpha)\\ mod\\ p \\equiv 0(Fermat)\\)

    由于 \\(\\mathsfg(\\alpha) \\neq 0\\ mod\\ p\\)\\(\\mathsff(\\alpha)\\equiv 0\\ mod\\ p\\)

    因此,由于至少有 \\(\\mathsfp-(p-n)\\)\\(\\mathsf\\alpha\\) ,可知 \\(\\mathsff(x)\\) 在模 p 下至少有 n 个不同的根。

    根据该理论,\\(\\mathsff(x)\\) 在模 p 下至多有 n 个根 \\(\\mathsf\\ \\Rightarrow\\ f(x)\\) 在模 p 下正好有 n 个不同的根。

  1. 推论:如果 \\(\\mathsfd \\mid p-1\\) 那么 \\(\\mathsfx^d \\equiv 1\\ mod\\ p\\) 在模 p 下恰好有 d 个不同的解
  • 例子:

    \\(\\mathsfx^3 \\equiv 1\\ mod\\ 7,\\qquad x^3 \\equiv 1\\ mod\\ 5\\)

  • 证明:

    \\(\\mathsfd \\mid p-1\\) ,所以 \\(\\mathsfx^d-1 \\mid x^p-1-1\\) 作为多项式

    \\(\\mathsfp-1=kd\\) ,所以 \\(\\mathsfx^kd-1=(x^d-1)(x^(k-1)d+\\cdots +1)\\)

    所以,\\(\\mathsfx^d-1 \\mid x(x^p-1-1)=x^p-x\\) ,故有 d 个解。

三、元素的阶

  1. 定义 (阶):如果 \\(\\mathsfgcd(a,m)=1\\) 且 h 是最小的正整数使得 \\(\\mathsfa^h \\equiv 1\\ mod\\ m\\) ,那么说 h 是模 m 下 a 的阶。记为:\\(\\mathsfh=ord_m(a)\\)
  • 例子:

    \\(\\mathsford_7(2)=3 \\qquad ord_11(2)=10 \\qquad ord_11(5)=5\\)

  1. 引理:令 \\(\\mathsfh=ord_m(a)\\) ,整数 k 的集合,使得 \\(\\mathsfa^k\\equiv 1\\ mod\\ m\\) 恰好是 h 的倍数的集合。
  • 例子:

    \\(\\mathsford_11(5)=5\\) ,如果 \\(\\mathsf5^k\\equiv 1\\ mod\\ 11\\) ,那么 \\(\\mathsfk=5,10\\)

  • 证明:

    \\(\\mathsfa^rh\\equiv (a^h)^r\\equiv 1^r\\equiv 1\\ mod\\ m\\)

    假设有一个 k 满足\\(\\mathsfa^k\\equiv 1\\ mod\\ m\\)

    \\(\\mathsfk=hq+r\\) 其中 \\(\\mathsf0 \\leq r<h\\)

    \\(\\mathsf1\\equiv a^k=a^hq+r=a^hqa^r\\equiv 1a^r\\ mod\\ m \\equiv a^r\\ mod\\ m\\)

    所以,\\(\\mathsfa^r \\equiv 1\\ mod\\ m\\) ,但是 \\(\\mathsfr<h\\) ,所以 \\(\\mathsfr=0\\) 并且 k 是 h 的倍数,即 \\(\\mathsfh \\mid k\\)

  1. 引理:如果 \\(\\mathsfh=ord_m(a)\\) 那么 \\(\\mathsfa^k\\) 在模 m 下的阶是 \\(\\mathsf\\frachgcd(k,h)\\)
  • 例子:

    \\(\\mathsford_11(5)=5 \\qquad ord_11(2)=10\\)

    \\(\\mathsf5^3 \\equiv 4\\) 的阶 \\(\\mathsf\\frac5gcd(3,5)=5\\ mod\\ 11\\)

    \\(\\mathsf2^8 \\equiv 3\\) 的阶 \\(\\mathsf\\frac10gcd(8,10)=5\\ mod\\ 11\\)

  • 证明:

    \\(\\mathsfa^kj \\equiv 1\\ mod\\ m \\iff h \\mid kj \\iff \\frachgdc(h,k) \\mid \\frackgcd(h,k)j \\iff \\frachgcd(h,k)\\mid j\\)

    所以,最小的正数 \\(\\mathsfj=\\frachgcd(h,k)\\)

  1. 引理:如果 a 在模 m 下阶为 h 并且 b 在模 m 下阶为 k 并且 \\(\\mathsfgcd(h,k)=1\\) 那么 ab 在模 m 下的阶是 hk
  • 例子:

    \\(\\mathsford_11(4)=5 \\qquad ord_11(10)=2 \\quad \\Rightarrow \\quad ord_11(4 \\times 10 \\equiv 7)=10\\)

  • 证明:

    \\(\\mathsf(ab)^hk \\equiv (a^h)^k(b^k)^h \\equiv 1^k1^h \\equiv 1\\ mod\\ m\\)

    相反,假设\\(\\mathsfr=ord_m(ab)\\)

    \\(\\mathsf(ab)^r \\equiv 1\\ mod\\ m \\qquad (ab)^rh \\equiv 1\\ mod\\ m \\qquad (a^h)^rb^rh \\equiv 1\\ mod\\ m \\qquad b^rh \\equiv 1\\ mod\\ m\\)

    所以,\\(\\mathsfk \\mid rh\\ \\Rightarrow\\ k \\mid r\\) ( 因为 \\(\\mathsfgcd(k,h)=1\\)) 并且类似的 \\(\\mathsfh \\mid r\\)

    所以,\\(\\mathsfhk \\mid r\\) 因此 \\(\\mathsfhk=ord_m(ab)\\)

四、原根

  1. 定义 (原根):如果 a 在模 m 下的阶是 \\(\\mathsf\\phi(m)\\) ,称 a 是模 m 下的原根
  • 例子:

    3 是模 7 下的原根

    2,7 是模 11 下的原根

  1. 引理:令 p 为素数并且对于一些其他的素数 q 假设 \\(\\mathsfq^e \\mid p-1\\) 。那么在模 p 下存在一个 \\(\\mathsfq^e\\) 阶元素。令 \\(\\mathsfp-1=q_1^e_1q_2^e_2 \\cdots q_r^e_r\\) 。该引理意味着 \\(\\mathsf\\exists\\ g_1,\\ g_2\\ \\cdots\\) 使 \\(\\mathsford_p(g_1)=q_1^e_1,\\ ord_p(g_2)=q_2^e_2 \\cdots\\) 等等。
  • 例子:

    \\(\\mathsfp=101,\\ q=5,\\ e=2 \\qquad ord_10131=25\\)

  1. 推论:令 \\(\\mathsfg=g_1g_2 \\cdots g_r\\) ,由之前的引理 g 的阶为 \\(\\mathsfq_1^e_1q_2^e_2 \\cdots q_r^e_r=p-1= \\phi(p)\\) 。因为所有的 \\(\\mathsfq_i\\) 都成对的互素,所以 g 是模 p 下的原根
  2. 原根的数量:如果至少存在一个原根,那么在模 m 下原根的个数为 \\(\\mathsf\\phi(\\phi(m))\\) 。特别的,如果 m 是素数,原根的数目就是 \\(\\mathsf\\phi(m-1)\\)
  • 例子:

    \\(\\mathsf\\phi(\\phi(31))=8\\) 实际上 \\(\\mathsf\\3,\\ 11,\\ 12,\\ 13,\\ 17,\\ 21,\\ 22,\\ 24\\ \\\\) 为 31 的原根

  1. 定理:在模 m 下存在一个原根当且仅当 \\(\\mathsfm=1,\\ 2,\\ 4,\\ p^e,\\ 2p^e\\)
  2. 其它相关概念:离散对数 等
  • 例子:

    \\(\\mathsf2^x \\equiv 5\\ mod\\ 11 \\qquad x=log_25\\ mod\\ 11\\) 这是一个 NPC-hard 问题

以上是关于数论与组合数学 3Hensel 引理原根的主要内容,如果未能解决你的问题,请参考以下文章

bzoj-2219 数论之神

NTT(快速数论变换)用到的各种素数及原根

初等数论 ——原根指标及其应用

(数论)51NOD 1135 原根

转载学习总结:初等数论——原根指标及其应用

《夜深人静写算法》数论篇 - (22) 卢卡斯定理