文件

GCD.

最大公约数

描述

例子

G= GCD(A,B返回最大的常见分歧一种B.。元素G总是非负,和GCD(0,0)回报0.。此语法支持任何数字类型的金宝app输入。

例子

[G紫外线] = GCD(A,B还返回Bézout系数,V.,满足:A. * U + B. * v = g。Bézout系数可用于求解蒸氨酸方程。此语法支持双重,单个和符金宝app号的整数输入。

例子

全部收缩

a = [-5 17;10 0];b = [-15 3;100 0];g = gcd(a,b)
G =2×25 1 10 0

GCD.即使输入为负,返回正值。

a = uint16([255 511 15]);B = UINT16([15 127 1023]);g = gcd(a,b)
G =1x3 uint16行向量15 1 3.

解决蒸氨酸方程, 3. 0. X + 5. 6. y = 8. 为了 X y

找到最伟大的常见除容器和一对Bézout系数30.56.

[G,U,V] = GCD(30,56)
G = 2.
U = -13.
v = 7.

V.满足Bézout的身份,(30 * u)+(56 * v)= g

重写Bézout的身份,使其看起来更像是原始方程。通过乘法来执行此操作4.。采用==.验证等式的两侧是否相等。

(30 * U * 4)+(56 * V * 4)== G * 4
ans =.逻辑1

计算价值 X y 解决问题。

x = u * 4
x = -52.
y = v * 4
Y = 28.

输入参数

全部收缩

输入值,指定为标量,向量或实体整数值数组。一种B.可以是任何数字类型,它们可以在某些限制范围内具有不同类型的类型:

  • 如果一种要么B.是类型单身的,那么另一个可以是类型单身的要么双倍的

  • 如果一种要么B.属于一个整数类,那么另一个必须属于同一类,或者它必须是一个双倍的标量值。

一种B.必须是相同的大小,或者必须是标量。

例子:[20 -3 13],[10 6 7]

例子:INT16([100-30 200]),INT16([20 15 9])

例子:INT16([100-30 200]),20

数据类型:单身的|双倍的|INT8.|int16|INT32.|INT64.|uint8.|uint16|UINT32.|UINT64

输出参数

全部收缩

最大的常见除数,作为一个真正的非负整数值数组返回。G与尺寸相同一种B.,和价值G总是真实和非负面的。G作为与之相同的类型返回一种B.。如果一种B.是不同的类型,然后G作为nOondouble类型返回。

Bézout系数,作为满足方程式的真实整数值阵列,A. * U + B. * v = g。数据类型V.是与之相同的类型一种B.。如果一种B.是不同的类型,然后V.作为nOondouble类型返回。

算法

g = gcd(a,b)使用欧几里国算法计算。[1]

[g,u,v] = gcd(a,b)使用扩展的欧几里德算法计算。[1]

参考

[1] Knuth,D。“算法A和X.”计算机编程艺术,卷。2,第4.5.2节。读书,MA:Addison-Wesley,1973年。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

也可以看看

在R2006A之前介绍