Extended Eucild's algorithm

算法要求:

Given two positive integers m and n, we compute their greatest common divisor d,and we also compute two not-necessarily-positive integers a and b such that am + bn = d.
对于给定的两个正整数 m 和 n,我们能得到两者的GCD---d,同样的我们也能计算得到,满足 am + bn = d 中的两个整数 a 和 b。

描述1:

E1:[Initialize.] Set a'<-b<-1,a<-b'<-0,c<-m,d<-n;
E2:[Divide] Let q and r be the quotiend and remainder, respectively, of c divided by d.
                         (We have c = qd +r and 0<= r <d.)
E3:[Remainder zero?] If r = 0, the algorithm terminates; we have in this case am + bn = d as desired.
E4:[Recycle.] Set c<-d, d<-r, t<-a', a'<-a, a<-t-qa, t<-b',b'<-b, b<-t-qb, and back to E2.||

描述2:

int Extended_Eucild_algorithm(int *a,int *b,int m,int n)
{
    int ta=1,tb=0;
    int q=m/n,r=m%n;
    *a=0,*b=1;
    while(r!=0)
    {
        m=n;
        n=r;
        int tmp=ta;ta=*a;*a=tmp-*a*q;//注意*a表示值
        tmp=tb;tb=*b;*b=tmp-*b*q;
        q=m/n;r=m%n;
    }
    return n;
}

对于已知非负整数 m 和 n解求 a * m + b * n =GCD(a , b)。

1、当 n = 0 时,GCD(m ,n)= m,则 a = 1 ,b = 0 ;
2、当 n != 0 时,GCD(m , n)= GCD(n , m%n),其中 m%n = m - m/n*n(/ 取整数部分) ,
       a1 * m + b1 * n = GCD(m , n), a2 * n + b2 * (m%n)= GCD(n , m%n),
        a1 * m + b1 * n =  a2 * n + b2 * (m%n)=  a2 * n + b2 *  (   m - m/n*n ),
       整理得    a1 * m + b1 * n = b2 * m + (a2 - m/n * b2)   *  n,
       则解得 a1 = b2;b1 =  a2 - m/n * b2 。

Extended Eucild's algorithm的相关信息:

https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm

递归实现该算法:

http://blog.csdn.net/zhjchengfeng5/article/details/7786595

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EEZ H24005是具有独特功能的一款可编程台式电源设计。在需要高功率输出时具有高效率,而且还可以为敏感的低功耗电路提供低纹,低噪声输出。其用户界面也不同。我们相信触摸屏显示和单个编码器旋钮的组合提供了一个UI,可以成功地替代传统的“功能”键,键盘,电位计,编码器,开关等。使用EEZ Studio,GUI显示在触摸屏上可以轻松修改,以满足不同用户的需求和品味。可编程台式电源EEZ H24005实物截图: 视频演示:https://v.qq.com/x/page/t0356a32s81.html 可编程台式电源EEZ H24005独特功能: 本地用户界面3.2“TFT彩色触摸屏和编码器旋钮 通道耦合串行(高达80 V),并联(高达10 A),使用内置的功率继电器(不需要外部接线) 遥感内置信号继电器不需要外部接线 数字控制Arduino Due(或兼容)32位ARM MCU板 功率控制交流浪涌电流限制器 远程/外部电压编程浪涌保护,2.5 V充分运行 电池温度监控光电隔离V / F输入(用于电池NTC) 可编程台式电源EEZ H24005标准功能: 频道数量2(隔离) 电压范围0 - 40 V(1/10 mV步长) 电流范围0 - 500 MA(0.1 /1毫安步骤,拉伸目标3),0 - 5 A(1 /10毫安步骤) 最大。每通道功率155 W(选择AC / DC模块,否则高达200 W) 拓扑串行混合(具有“100%占空比”功能的开关预调节器,线性后稳压器) 内置保护机制遥控反极性,MCU看门狗(心跳),电源好 其他频道的功能输出使能,下编程器 冷却60 mm风扇(通过通道温度传感器控制速度),后稳压器功率MOSFET上的无源散热器 连接USB,以太网(USB端口现在完全隔离,两个输入都具有ESD保护,由于拉伸目标2) 其他外设蜂鸣器,带超级备份的RTC,EEPROM,SD卡插座 远程/外部电压检测是的,使用内置的信号继电器(内部检测不需要外部接线) 数字I / O1 x输入(保护,3.3和5 V电平逻辑),输出:1个光隔离,1个电源继电器(拉伸目标2) 功率控制交流电源开关(后面板),交流软启动/待机(固件控制),MCU直流电源开关(前面板) 交流电源85-264 V / 47-63 Hz(手动选择),附加输入保护(TVS,MOV,SAR) 外形尺寸金属外壳:293mm(宽)×90mm(高)×272mm(D) EEZ H24005由以下部件和模块组成: AUX PS模块 电源板(每个通道一个,总共两个) Arduino板 金属外壳 螺母,螺栓和机电部件 线束 Arduino到期 3.2“TFT彩色触摸屏显示(由Arduino屏蔽携带) AC / DC电源模块,48 VDC,155 W(每个通道一个,共两个) 如截图展示:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值