当前位置: 首页 > wzjs >正文

杭州哪家网站建设公司好点做教育业网站

杭州哪家网站建设公司好点,做教育业网站,2021年天津教师招聘信息,快手怎么引流推广一 gcd&lcm 这个其实也属于是很简单但非常有必要掌握的小算法。 1. 定义 “gcd” 是 “Greatest Common Divisor” 的缩写,中文名为最大公约数 ,也称最大公因数。它指的是两个或多个整数共有约数中最大的一个。例如,对于整数 12 和 18…

一 gcd&lcm 

这个其实也属于是很简单但非常有必要掌握的小算法。

1. 定义

“gcd” 是 “Greatest Common Divisor” 的缩写,中文名为最大公约数 ,也称最大公因数。它指的是两个或多个整数共有约数中最大的一个。例如,对于整数 12 和 18 ,12 的约数有 (1, 2, 3, 4, 6, 12) ,18 的约数有 (1, 2, 3, 6, 9, 18) ,它们共有的约数有 (1, 2, 3, 6) ,其中最大的是 6 ,所以 12 和 18 的最大公约数(gcd )是 6 ,可表示为 (gcd(12, 18)=6) 。

2. 计算方法

这个其实也不用完全死记,大概记住现场也可以推一下。

下面是代码

/*** 使用辗转相除法计算两个整数的最大公约数(GCD)。* 原理:对于任意两个整数a和b,gcd(a, b) = gcd(b, a mod b),* 不断重复此过程直到余数为0,此时的除数即为最大公约数。* * @param a 第一个整数* @param b 第二个整数(不能为0,否则会导致除零异常)* @return a和b的最大公约数*/
public static int gcd(int a, int b) {// 计算a除以b的余数int k = a % b;// 当余数为0时,当前的除数b就是最大公约数if (k == 0) {return b;}// 否则递归计算b和余数k的最大公约数return gcd(b, k);
}

 lcm就是最小公倍数,我们直接a*b/gcd(a,b)就可以了。

代码:

public static int lcm(int a,int b) {return a*b/gcd(a,b);}

二 拓展欧几里得&线性同余

拓展欧几里得算法(Extended Euclidean Algorithm)

基本定义 拓展欧几里得算法是欧几里得算法(辗转相除法)的扩展,不仅能计算两个整数 a 和 b 的最大公约数 (d = gcd(a, b)),还能找到整数 x 和 y,使得:ax + by = d其中,x 和 y 被称为 贝祖系数(Bézout coefficients)。

贝祖系数一般用于求解求解线性不定方程ax + by = d,题目可能设计成以这个为原理的故事算法题,还有就是第三部分要讲的求模逆元。

下面来看怎么求贝祖系数:

在计算gcd时进行回溯。

// 扩展欧几里得算法 - 递归实现public static long[] extendedGCD(long a, long b) {if (b == 0) {// 终止条件:gcd(a, 0) = a,对应的贝祖系数为 (1, 0)return new long[]{a, 1, 0};} else {// 递归计算 gcd(b, a mod b)long[] result = extendedGCD(b, a % b);//接受上一层的返回值long gcd = result[0];long x = result[2];long y = result[1] - (a / b) * result[2];return new long[]{gcd, x, y};}}

三 模拟元

逆元(模运算中的乘法逆元)

在模运算中,逆元(Multiplicative Inverse) 是一个核心概念,用于解决除法问题。对于整数 a 和模数 m,若存在整数 x 使得:

则称 x 为 a 在模 m 下的逆元。逆元存在的充要条件是 a 和 m 互质(即 gcd(a, m) = 1)。

1. 扩展欧几里得算法

当 a 和 m 互质时,通过扩展欧几里得算法求解 ax + my = 1,得到的 x 即为逆元。

 // 计算模逆元:若 a 和 m 互质,返回 a 在模 m 下的逆元;否则返回 -1public static long modInverse(long a, long m) {long[] result = extendedGCD(a, m);long gcd = result[0];long x = result[1];if (gcd != 1) {// a 和 m 不互质,逆元不存在return -1;} else {// 确保逆元在 [0, m-1] 范围内return (x % m + m) % m;}}

2. 费马小定理(当 m 为质数时)

代码: 

public static long powMod(long a, long b, long mod) {long result = 1;       // 初始化结果为1while (b > 0) {        // 循环直到指数b变为0if ((b & 1) != 0) { // 检查b的二进制最低位是否为1(等价于b % 2 != 0)result = result * a % mod; // 若为1,将当前底数a乘入结果并取模}a = a * a % mod;   // 底数平方并取模b >>= 1;           // 指数右移一位(等价于b /= 2)}return result;
}

讲实话,我碰到的最多的是gcd和lcm和逆元,逆元一般用于求含除数运算的数的模,如42!/2024%100000007。

 


文章转载自:

http://eADO7XnO.rzmzm.cn
http://pl1hjIDp.rzmzm.cn
http://WzxVFgRI.rzmzm.cn
http://h6FjHGnW.rzmzm.cn
http://QJIh794I.rzmzm.cn
http://i5xeLpRQ.rzmzm.cn
http://StaE1dph.rzmzm.cn
http://62z3fT3l.rzmzm.cn
http://YDLj6XzF.rzmzm.cn
http://YxuFEaF9.rzmzm.cn
http://wy9Y9cni.rzmzm.cn
http://DVIycEV7.rzmzm.cn
http://Uocm3ZC5.rzmzm.cn
http://oM5v9HVs.rzmzm.cn
http://vh4MLiGn.rzmzm.cn
http://Egd84MGM.rzmzm.cn
http://z0kQ54AG.rzmzm.cn
http://0TsMBYRi.rzmzm.cn
http://C9bKa4LJ.rzmzm.cn
http://DtAog8nb.rzmzm.cn
http://mZtengA6.rzmzm.cn
http://9oYoOAhD.rzmzm.cn
http://pAAUkOlg.rzmzm.cn
http://MtNWJDnm.rzmzm.cn
http://as7eoefv.rzmzm.cn
http://ErMVvwxm.rzmzm.cn
http://NWfjBbPs.rzmzm.cn
http://4uiMYfYo.rzmzm.cn
http://Qy7HELVn.rzmzm.cn
http://OM9VZZsr.rzmzm.cn
http://www.dtcms.com/wzjs/610005.html

相关文章:

  • 济阳网站建设哪家好一个域名一个ip做多个网站
  • 网站开发经济可行性分析怎么写东营建设工程信息网站
  • 网站设计 中高端简历模板个人简历电子版免费表格
  • 选择网站的关键词长沙十大景点
  • 网站建设宣传册内容全网营销公司有哪些
  • 从化一站式网站建设私人承接做网站多少钱
  • 贵州省建设厅官方网站电话做网站的毕设开题依据
  • 网站建设 html5中国科技成就2019
  • 网站策划书怎么写战队头像logo免费自动生成器
  • 网站建设主题怎么定北京网页设计模板
  • jq网站特效插件下载插画师零基础自学
  • 互联网公司起名嘉兴seo网站排名
  • 佛山网站制作做多少钱WordPress禁用邮件注册
  • 山东省建设发展研究院网站用enfold做的网站
  • 做网站需要公司么网站的建设目标是什么意思
  • 做网站一定要自己搭建服务器吗广州智迅网络做网站
  • 淘宝网站推广工具wordpress安装主题ftp
  • 菏泽做网站建设的公司苏州网站建设相关技术
  • 个人网站建设研究意义网页设计自我介绍模板代码html
  • 网站规划的类型深圳软件外包公司有哪些
  • 网站备案 服务内容上海住房和城市建设厅网站
  • 哈尔滨网站制作专业福田做商城网站建设哪家技术好
  • 网站主机是什么wordpress怎么让文章只显示摘要
  • 网站制作及维护合同京东内部券网站怎么做
  • 多个织梦dedecms网站怎么做站群seo外包公司优化
  • 公园网站建设方案广东今科网站建设
  • 甘肃建投土木工程建设有限公司网站后台温州苍南网站建设
  • 网站收费怎么做关键词排名代发
  • 自适应网站ui做几套户外网站设计
  • 行业型网站 赢利点网站站长在哪登陆后台