首页 > 其他分享 >扩展欧几里得(exgcd)

扩展欧几里得(exgcd)

时间:2023-02-03 12:35:58浏览次数:56  
标签:贝祖 return int 欧几里得 扩展 exgcd 等式 ll 式子


扩展欧几里得(exgcd)_Code这里先说一下最大公约数怎么求,辗转相除法都会用,这里讲一下站桩相除法的原理。
扩展欧几里得(exgcd)_Code例如两个数扩展欧几里得(exgcd)_辗转相除法_03假设这两个数扩展欧几里得(exgcd)_最大公约数_04扩展欧几里得(exgcd)_Code_05小,设扩展欧几里得(exgcd)_辗转相除法_06是这两个数的最大公约数。
扩展欧几里得(exgcd)_Code可得扩展欧几里得(exgcd)_Code_08
因为这里扩展欧几里得(exgcd)_Code_09都是一个正整数不会对最大公因子造成影响所以相等。即扩展欧几里得(exgcd)_Code_10
扩展欧几里得(exgcd)_Code如果扩展欧几里得(exgcd)_辗转相除法_12的时候说明b可以被扩展欧几里得(exgcd)_最大公约数_04整除,最大公因子就是扩展欧几里得(exgcd)_Code_05

Code:

ll gcd(ll a,ll b)
{
return b==0?a : gcd(b,a%b);
}

扩展欧几里得(exgcd)_Code接下来就是扩展欧几里得
扩展欧几里得(exgcd)_Code扩展欧几里得(exgcd)_辗转相除法_03扩展欧几里得(exgcd)_最大公约数_18都是正整数我们会得到一个式子扩展欧几里得(exgcd)_辗转相除法_19
如果我们要求得这个式子的值,这个值是非常多的,但是最小值只有一个那就是扩展欧几里得(exgcd)_辗转相除法_20即:扩展欧几里得(exgcd)_最大公约数_21 即如果扩展欧几里得(exgcd)_辗转相除法_22是整数,那么一定存在整数扩展欧几里得(exgcd)_Code_23使得扩展欧几里得(exgcd)_辗转相除法_24。这个式子是怎么推的,我们可以使用逆推的方式。假设这个式子成立。
由上面推导最大公因子的过程可知,
扩展欧几里得(exgcd)_Code扩展欧几里得(exgcd)_辗转相除法_26

扩展欧几里得(exgcd)_Code_27 时,扩展欧几里得(exgcd)_Code_28
贝祖等式即 扩展欧几里得(exgcd)_Code_29,解得 扩展欧几里得(exgcd)_辗转相除法_30 可以取 扩展欧几里得(exgcd)_最大公约数_31

扩展欧几里得(exgcd)_最大公约数_32时,
假设假设 扩展欧几里得(exgcd)_Code_33 的贝祖等式的解为扩展欧几里得(exgcd)_最大公约数_34扩展欧几里得(exgcd)_Code即:

  1. 扩展欧几里得(exgcd)_最大公约数_36
  2. 扩展欧几里得(exgcd)_辗转相除法_37
    由上面的推理我们可知:扩展欧几里得(exgcd)_最大公约数_38
    所以:扩展欧几里得(exgcd)_最大公约数_39
    即:扩展欧几里得(exgcd)_最大公约数_40
    注:扩展欧几里得(exgcd)_最大公约数_41
    扩展欧几里得(exgcd)_辗转相除法_42
    可得恒等式:

扩展欧几里得(exgcd)_Code_43

扩展欧几里得(exgcd)_Code即贝祖等式 1 的解可以由 贝祖等式 2 的解得到,这是一个递归求解的过程,并且随着对 扩展欧几里得(exgcd)_Code_33 进行辗转相除,贝祖等式的系数会越来越小,直至变为情况扩展欧几里得(exgcd)_辗转相除法_46,而情况1贝祖等式的解是有具体的值的,
扩展欧几里得(exgcd)_最大公约数_47。然后进行回溯计算,最终可以得到。

Code:

ll exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
int g=exgcd(b,a%b,x,y);
int t=x;
x=y;
y=t-a/b*y;
return g;
}


标签:贝祖,return,int,欧几里得,扩展,exgcd,等式,ll,式子
From: https://blog.51cto.com/u_15952369/6035765

相关文章

  • keycloak~JWT各字段说明及扩展字段的方法
    jwt扩展字段介绍为了实现业务的定制化需求和开发人员使用的便利,对kc的JWT进行了扩展,这个扩展字段在解析JWT之后都可以看到。jwt的payload{"exp":1675329802,"i......
  • 第六十四章 使用 SNMP 监控 IRIS - 扩展 InterSystems IRIS MIB
    第六十四章使用SNMP监控IRIS-扩展IRISMIB应用程序员可以添加托管对象定义并扩展IRIS子代理为其提供数据的MIB。这不是一个完整的MIB编辑器或SNMP工具包;......
  • tp框架 yar扩展rpc调用
    1.安装yar扩展,根据使用的php版本进行下载https://pecl.php.net/package/yarhttps://pecl.php.net/package/msgpack2.解压php_msgpack.dll和php_yar.dll到php配置ex......
  • 扩展中国剩余定理学习笔记
    扩展中国剩余定理模板题:P4777前置芝士:扩展欧几里得(exgcd)不需要中国剩余定理问题:求\(\begin{cases}x\equivm_1\(\mod\a_1)\\x\equivm_2\(\mod\a_2)\\...\\x\equ......
  • 扩展消息转换器
    扩展消息转换器可以通过自定义配置将类型进行转换:目的是避免Long类型的数据的舍入而导致SQL语句的增删改查找不到。packagecom.po.reggie.config;importcom.po.regg......
  • 扩展程序被谷歌下掉了
     之前写了一个扩展程序,主要用来自动触发youtube视频的chapter选项,这样就可以快速的浏览章节。几天收到一个邮件,说这个扩展程序被ban掉了因为违反了google的规则,先收到邮......
  • Guava:google公司开发的一款Java类库扩展工具包
    Guava是google公司开发的一款Java类库扩展工具包文档https://github.com/google/guavahttps://github.com/google/guava/wikihttps://guava.dev/releases/snapshot-jre......
  • 详解如何用 C 为 Python 实现扩展模块
    当Python代码的执行效率不高时,我们会选择将性能相关的部分交给C来实现,但这要求开发者必须熟悉Python提供的CAPI。为此我专门写了一个系列,介绍如何用C给Python......
  • 每个前端程序员都应该知道的10个Chrome扩展
    开发人员一直在寻找使他们的生活更轻松、更高效的方法,因为我们都知道开发应用程序的过程并不像听起来那样结构化。您会遇到各种错误和障碍,可能需要几天时间才能克服。所以......
  • Chrome 扩展开发概览
    1.Chrome扩展的结构组成Chrome扩展的文件结构-extension-smaple/-manifest.json-service-worker.js-scripts/-content-script.js......