zoukankan      html  css  js  c++  java
  • 代数数论——复数域上的数论

    会写这个是因为前几天看到了 2019 年的集训队论文,于是学习了一下


    这是前两天写的每日一题的具体解答:

    给出两个复数 (x,yinmathbb Z[i]),请求出一对复数 (a,binmathbb Z[i]),使得 (|ax+by|) 非零且最小,输出这个最小值。(1leq|x|,|y|leq 10^9)

    sol.

    这是一道论文题。题目来源:国家集训队 2019 论文集 ——「算法竞赛中一些数论问题的推广与高斯整数初探」李佳衡。

    我们将说明如下的两个事实:在环 (mathbb Z[i]) 上贝祖(Bezout)定理成立;在环 (mathbb Z[i]) 上可以使用辗转相除法求得公约数。

    若未声明,以下所有运算均在环 (R=(M,oplus,otimes)) 上进行,且不区分集合 (M) 与建立在 (M) 上的代数系统。

    定义 1(公约数).(alpha,etain M),若 (deltain M,deltamidalpha,deltamideta),则称 (delta)(alpha)(eta) 的公约数。

    定义 2(最大公约数).(alpha,etain M) 且不全为零元 (omicron),若存在 (Deltain M) 满足 (Deltamidalpha,Deltamideta),且对于任意 (alpha,eta) 的公约数 (delta) 都有 (deltamidDelta),那么称 (Delta)(alpha,eta) 的最大公约数,记做 (Delta=gcd(alpha,eta))

    注意到两个数的最大公约数可能有多个,它们都是相伴的(即互相等价)。

    若未声明,以下所有运算均在环 (R=(mathbb Z[i],+, imes)) 上进行,且不区分集合 (M) 与建立在 (M) 上的代数系统。

    定义 3(范数).(xinmathbb Z[i]) 的范数(norm)为 (N(x)=Re^2x+Im^2x=|x|^2)

    定理 1.(alpha,etainmathbb Q[i]),则 (N(alphaeta)=N(alpha)N(eta)),若 (alphamideta)(N(alpha)mid N(eta))

    定理 2.(nin mathbb N),则 (mathbb Z[i]) 中范数等于 (n) 的元素只有有限个。

    以上两个定理的证明十分简单,这里略去。

    定理 3(带余除法).(alpha,etainmathbb Z[i])(alpha eq 0),那么存在 (eta,gammainmathbb Z[i]),使得

    [eta=etaalpha+gamma,qquad 0leq N(gamma)<N(alpha) ]

    Proof.

    ( au=fracetaalpha=r+siinmathbb Q[i]),取 (u,vinmathbb Z)( au) 的实部和虚部四舍五入的结果,即使得 (|u-r|leq frac 12,|v-s|leq frac 12)

    (eta=u+viinmathbb Z[i]),则

    [N( au-eta)=|u-r|^2+|v-s|^2leq(frac 12)^2+(frac 12)^2=frac 12 ]

    又有 (gamma=( au-eta)alpha),故而

    [N(gamma)=N( au-eta)N(alpha)leqfrac 12N(alpha)<N(alpha) ]

    以下记满足 (N(gamma)leqfrac 12N(alpha))(gamma)(etamodalpha)

    定理 4(贝祖定理). 对于不全为 (0)(alpha,etainmathbb Z[i])(Delta=gcd(alpha,eta)) 存在且存在 (x,yinmathbb Z[i]) 满足方程

    [alpha x+eta y=Delta ]

    Proof.

    (S={alpha x+eta ymid x,yinmathbb Z[i]}),设其中范数最小的非零元素为 (delta),于是由 (deltain S) 推知对于任意 (etamidalpha,etamideta) 都有 (etamiddelta)

    再设 ( uin S),由定理 3,将 ( u) 表示为

    [ u=etadelta+gamma,qquad 0leq N(gamma)<N(delta) ]

    现在假定 (N(gamma) eq 0),于是 (gamma= u-etadeltain S),且 (0 eq N(gamma)<N(delta)),这与 (N(delta)) 最小矛盾,于是一定有 (gamma=0)。故而 (deltamid u)。现在注意到 (alpha,etain S),于是 (deltamidalpha,deltamideta),根据定义, (delta=gcd(alpha,eta))

    定理 5(辗转相除法). 对于 (alpha,etainmathbb Z[i]),有

    [gcd(alpha,eta)=gcd(eta,alphamodeta) ]

    证明是显然的,这里略去。

    那么本题的做法就很显然了:直接求出 (gcd(x,y)) 就是答案,这可以使用辗转相除法。因为每一次的余数都会严格下降一半,于是总复杂度是 (mathcal O(log N(xy)))

    Quite Easily Done.


    以及一种特殊的模 (4) 意义下的狄利克雷特征函数:

    [chi(n)= left{ egin{aligned} & 1 & nequiv 1pmod 4\ & -1 & nequiv 3pmod 4\ & 0 & otherwise end{aligned} ight. ]

    这个函数有个性质:

    定理 6.(ninmathbb N)(mathbb Z[i]) 中范数等于 (n) 的元素个数为:

    [E(n)=4sum_{dmid n}chi(d) ]

    证明可以参考另一篇论文「《整点计数》命题报告以及对高斯整数的若干研究」徐翊轩。

  • 相关阅读:
    python之路-HTML初识
    python之路-CentOS6.5 安装Python 的依赖包
    python之路-离线pip下载Python包
    python之路-Memcache
    python之路-SQLAlchemy
    python之路-Redis
    python之路-Mysql
    偶然发现了获取有ID的dom的一种方法
    js 工厂模式和构造函数的区别
    ES6:export和import
  • 原文地址:https://www.cnblogs.com/whx1003/p/14020488.html
Copyright © 2011-2022 走看看