我正在寻找一种方法来实现另一种语言中matlab中使用的“gcd”函数,但我真的无法理解它的运行方式。
在http://www.mathworks.com/access/helpdesk/help/techdoc/ref/gcd.html中说:
“[G,C,D] = gcd(A,B)返回最大公约数G和数组C和D,它们满足等式:A(i)。* C(i)+ B(i)。* D(i)= G(i)。“
但它没有说明如何计算C和D.
如果有人对这个主题有更清晰的认识,我将不胜感激! 感谢:)
答案 0 :(得分:4)
(“第4.5.2节算法X”这个可以在http://www.fitc.unc.edu.ar/javadev/math/previous/algorithms.html中显示。)
答案 1 :(得分:0)
Matlab文档引用
Knuth,Donald,计算机编程艺术,Vol。 2,Addison-Wesley:阅读MA,1973年。第4.5.2节,算法X。
我没有冒昧地为你解释这一点,但它就在那里。
答案 2 :(得分:0)
只需输入
即可查看来源edit gcd
在编辑器中打开该功能。然后你可以逐行查看函数。
与其他两篇文章中的参考文献一起,这可以为您提供答案。
答案 3 :(得分:0)
它将使用The extended Euclidean algorithm上此链接中的一个基本方案。