TAOCP-1.2.1_扩充的欧几里得算法

本文介绍了一种计算两正整数最大公因子的方法——扩充的欧几里得算法,并给出了详细的算法步骤及C语言实现。通过实例演示了如何找到两数的最大公因子及其线性组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TAOCP-1.2.1_扩充的欧几里得算法

@(algorithm)[TAOCP]

1.算法E(扩充的欧几里得算法)

1.1问题描述:

给定两个正整数m和n,我们计算它们的最大公因子d和两个整数a和b,使得\(am + bn = d\)

1.2 实现步骤:

E1. [初始化] 置\(a' \xleftarrow{} b \xleftarrow{} 1\), \(a \xleftarrow{} b' \xleftarrow{} 0\), \(c \xleftarrow{} m\), \(d \xleftarrow{} n\)
E2. [除] 设q和r分别是c除以d的商和余数。(我们有 \(c = qd + r\), 且 \(0 \leq r \le d\)
E3. [余数为0?] 如果r = 0,算法终止;在此情况下,我们如愿地有 \(am + b n = d\)
E4. [循环] 置\(c \xleftarrow{} d\), \(d \xleftarrow{} r\), \(t \xleftarrow{} a'\), \(a' \xleftarrow{} a\), \(a \xleftarrow{} t\) - \(qa\), \(t \xleftarrow{} b'\), \(b' \xleftarrow{} b\), $b \xleftarrow{} t $ - $ qb$,并返回E2

1.3 C实现
#include<stdio.h>
#include<stdint.h>

int32_t cycles;

int exgcd(int m,int n)
{
    uint32_t a, a1, b, b1, c, d;
    uint32_t q, r;
    uint32_t t;

    a1 = b = 1;
    a = b1 = 0;
    c = m;
    d = n;
    
    r = c % d;
    q = (c - r) / d; 
    
    while (r) {
        cycles++;
        c = d;
        d = r;
        t = a1;
        a1 = a;
        a = t -q * a;
        t = b1;
        b1 = b;
        b = t - q * b;
        
        r = c % d;
        q = (c - r) / d;
        if (r == 0)
            break;
    }
    return d;
}

int main(void)
{

    uint32_t m, n;
    uint32_t ret;
    
    printf("Please input 2 positive number(eg: 1769 551):\n");
    scanf("%d %d", &m, &n);

    ret = exgcd(m, n);

    printf("The gcd of %d and %d is: %d, cycles: %d\n", m, n, ret, cycles);

    return 0;
}
1.4 运行结果
# make
gcc -Wall -O3 -g e.c -o e
# ./e 
Please input 2 positive number(eg: 119 544):
1769 551
The gcd of 1769 and 551 is: 29, cycles: 3

转载于:https://www.cnblogs.com/jelly-wd/p/4169667.html

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值