zoukankan      html  css  js  c++  java
  • 逆元

    定义

    (ax equiv 1space pmod b) , 则称 (x)(a) 关于模 (b) 的逆元.
    常记做 (a^{-1})
    同时, 上式等价于 (ax + by = 1) (同余的性质)

    条件

    逆元不一定存在, 存在的充要条件是 ((a, b) = 1)

    推论

    (p) 是质数, (p) 不整除 (a), 则 (a)(p) 的逆元存在

    结论

    ([0, b)) 的范围内, (a) 关于模 (b) 的逆元(若存在), 是唯一的.

    方法

    可以用 (exgcd) 求逆元

    code

    int inv(int a, int b) {
    	int x, y;
    	exgcd(a, b, x, y);
    	return x;
    }
    

    证明充要条件

    充分性

    反证法;
    已知(ax equiv 1 pmod b)
    所以 (ax + by = 1)
    假设 ((a, b) > 1)
    因为 ((a, b) | a)((a,b) | b)
    又因为 (x,y) 为整数
    所以 ((a, b) | (ax + by))
    所以 ((a, b) | 1)
    又因为 ((a, b) > 1)
    所以 ((a,b) | 1) 不成立
    所以矛盾
    所以 (a) 存在模 (b) 的逆元,则 (a,b) 必然互素

    必要性

    a,b互素

    反证法;
    假设 ((a, b) = 1) 存在整数 $ x $ 使 (ax otequiv 1 pmod b)
    所以 (ax + by eq 1)
    因为 ((a, b) | a)((a,b) | b)
    又因为 (x,y) 为整数
    所以 ((a, b) | (ax + by))
    所以 ((a, b) mid 1)
    又因为 ((a, b) = 1)
    所以 ((a,b) mid 1) 不成立
    所以矛盾
    所以若 (a,b) 互素,则 (a) 必然存在模 (b) 的逆元

    a,b不互素

    反证法;
    假设 ((a, b) > 1) 存在整数 $ x $ 使 (ax equiv 1 pmod b)
    所以 (ax + by = 1)
    因为 ((a, b) | a)((a,b) | b)
    又因为 (x,y) 为整数
    所以 ((a, b) | (ax + by))
    所以 ((a, b) | 1)
    又因为 ((a, b) > 1)
    所以 ((a,b) | 1) 不成立
    所以矛盾
    所以若 (a,b) 不互素,则 (a) 必然不存在模 (b) 的逆元

    证明推论

    充要条件是 ((a, p) = 1)
    所以, 当(p) 是质数, (p) 不整除 (a), 则 (a)(p) 的逆元存在

    证明结论

    反证法 :
    (a) 关于模 (b) 的逆元有两个
    不妨设 (0 leqslant x_1 < x_2 < b)
    (ax_1 equiv ax_2 equiv 1 pmod b)
    (Leftrightarrow b|a(x_1-x_2)) (同余中有说)
    又因为 ((a, b) = 1)
    所以 (b | (x_1 - x_2))
    又因为 (0 leqslant x_1 < x_2 < b)
    矛盾
    所以假设不成立
    所以在 ([0, b)) 的范围内, (a) 关于模 (b) 的逆元(若存在), 是唯一的.

  • 相关阅读:
    windows服务的默认启动类型和登录帐户
    oracle通过sql随机取表中的10条记录
    oracle如何四舍五入?
    Sql Server数据库自增长字段标识列的插入或更新修改操作办法
    将一个表中的数据导入到另一张表中
    设计模式已经陨落了?
    LINQ架构简单描述
    Asp.Net 验证控件
    .Net 三层架构开发初步
    C++编程思想
  • 原文地址:https://www.cnblogs.com/lieberdq/p/13283694.html
Copyright © 2011-2022 走看看