一般matlab里给出的gcd(a,b)函数求最大公约数只能有两个参数,如果输入gcd(1,2,3)就会出现出现如下错误:

所以如果求多个数的最大公约数就会出现问题,下面程序是对任意多个数求最大公约数:

function [maxgcd]=maxgcd(A)

n=length(A);

maxgcd=A(1);

for i=1:1:(n-1)

maxgcd=gcd(maxgcd,A(i+1));

end

end

例如求4,8,12,24的最大公约数为:

除了求最大公约数,有时候也要求多个数的最小公倍数:

function [min_GBS]=min_GBS(A)

n=length(A);

maxA=max(A);

s=1;

k=0;

for i=1:1:n

s=s*A(i);

end

fla=false;

for i=maxA:1:s

for j=1:1:n

if(mod(i,A(j))==0)

fla=true;

k=i;

else

fla=false;

break;

end

end

if(fla==true)

min_GBS=k;

return;

end

end

end

例如求4,8,12,16的最小公倍数就是48.

当然,我们在处理一些数据的时候有时候需要把分数化成整数,比如把多项式1/2*x^2+x+1/5化成整系数的形式:

5*x^2+10*x+2,且系数为互质的形式,此时需要求多个非整型的数据的“最小公倍数”:

function [min_double_GBS]=min_doub_GBS(A)

n=length(A);

% f_on=sym([]);

f_down=sym([]);

char fla=false;

for i=1:1:n

[~,f_down(i)]=numden(sym(A(i)));

end

% f_down

for i=1:1:n

if(f_down(i)~=1)

fla=false;

break;

else

fla=true;

end

end

if(fla==false)

GBS=min_GBS(f_down);

B=GBS*A;

min_double_GBS=min_GBS(B);

else

min_double_GBS=min_GBS(A);

end

% if(maxgcd(A)~=1)

% min_double_GBS

for i=1:1:n

A(i)=min_double_GBS/A(i);

end

% A

if(maxgcd(A)~=1)

d=maxgcd(A);

min_double_GBS=min_double_GBS/d;

end

end

注意:这个函数是需要调用上面两个函数的!

例如求1,1/2,3的“最小公倍数”为3,分别是乘以3,6,1

再例如求1,2/5,3的“最小公倍数”为6,分别是乘以6,15,2

matlab多个最大公约数,求任意多数的最大公约数及最小公倍数的matlab实现相关推荐

  1. python编写函数、计算三个数的最大公约数_python 函数求两个数的最大公约数和最小公倍数...

    1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数B进行 ...

  2. 用递归法求两个数的最大公约数

    用递归法求两个数的最大公约数 求两个数的最大公约数的思路是,用辗转现除法 辗转相除法求两个数的最大公约数的步骤如下: 先用小的一个数除大的一个数,得第一个余数: 再用第一个余数除小的一个数,得第二个余 ...

  3. c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  4. 求三个数的最大公约数和最小公倍数

    题目:求两个正整数的最大公约数和最小公倍数. 基本要求:1.程序风格良好(使用自定义注释模板),两种以上算法解决最大公约数问题,提供友好的输入输出. 提高要求:1.三种以上算法解决两个正整数最大公约数 ...

  5. MATLAB 求任意一个数的所有因子

    MATLAB 求 任意一个数的所有因子 我们都知道matlab 有自带的求最大公约数和最小公倍数的函数,但是缺少求取任意一个数所有 因子 的函数, 我么有时候将一个数组进行分段截取的时候希望每段长度都 ...

  6. java程序:求三个数的最大公约数和最小公倍数

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; /**main方法用于测试结果**/publi ...

  7. 求两个数的最大公约数(辗转相减法)

    更相减损法:也叫更相减损术,是出自<九章算术>的一种求最大公约数的算法,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合. <九章算术>是中国古代的数学专著,其中的 ...

  8. matlab方程近似求根,第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令.doc...

    第七讲MATLAB中求方程的近似根(解)教学目的学习matlab中求根命令 第七讲 MATLAB中求方程的近似根(解) 教学目的:学习matlab中求根命令,了解代数方程求根求解的四种方法,即图解法. ...

  9. 【经典100题】 题目16 求两个数的最大公约数和最小公倍数

    题目 求两个数的最大公约数和最小公倍数. 最大公约数:指两个或多个整数共有约数中最大的一个 最小公倍数:指两个或多个整数共有倍数中最小的一个 说明:自己没有搞清楚最大公约数和最小公倍数的定义,结果走了 ...

最新文章

  1. Debian上网的问题小结
  2. Vue PDF文件预览vue-pdf
  3. watson软件使用_使用Watson Assistant进行多语言管理
  4. 数字图像处理——2D降噪
  5. VBA合并csv文件
  6. php与数据库编码格式转码,php 数据库 中文转码
  7. String字符串按多个字符Split方法
  8. Php开发银行接口之浦发银行
  9. JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
  10. Mac平台使用SnapMotion从视频中提取图像
  11. kmz文件转为arcgis的图层(制作底图)
  12. flexbox:1.0.0_了解Flexbox:您需要了解的一切
  13. 愿天下有情人都是失散多年的兄妹 (25 分)
  14. 这五款小众软件你肯定不知道
  15. 送礼品的禁忌和注意事项
  16. 洛谷 P1879 [USACO06NOV]玉米田Corn Fields
  17. 《Dreamweaver CS6 完全自学教程》笔记 第十三章:Dreamweaver 中的 HTML 代码
  18. 神经网络与傅立叶变换到底有没有关系?
  19. 《区块链技术与应用》北大肖臻老师——课程笔记【4-5】
  20. 常见广域网协议及特点

热门文章

  1. PHP文案馆头像壁纸小程序源码独立后台
  2. 介绍几个常用的Chrome谷歌浏览器插件
  3. CSS兼容性技巧整理--从IE6-IE9 火狐谷歌浏览器兼容
  4. IPv6篇之即插即用
  5. 《卓有成效的管理者》读书笔记(一)——推荐序四
  6. 微服务大战:Spring启动大战。 Ballerina
  7. 进栈,出栈的详细知识
  8. 年终总结--时光如水,生命如歌
  9. Excel分组最大级别为8(outlineLevel最大为7)
  10. iOS开发--AVFoundation进行视频合成, 导出结果旋转90度问题