1

编写一个函数 getpythogorean(Z),它返回满足以下属性的所有正整数,对于小于或等于 Z 的所有正整数:

x^2 + y^2 = z^2

该函数不应该包含任何循环。

这是一个示例输入/输出

获取pythogorean(20)

答案 = [3 4 5; 6 8 10;5 12 13;9 12 15;8 15 17;12 16 20]

所以本质上,你得到 Z 的值并输出导致 z < 20 的 x、y 和 z

截至目前,这就是我所拥有的:

函数 [out] = getpythogorean(Z)

[X,Y] = 网格网格(1:Z,1:Z);

W = sqrt((X.^2)+(Y.^2));

结尾

现在我需要以某种方式过滤 W 的值并保存它们的位置以引用回输出的 X 和 Y 矩阵。据说这可以在 4 行代码中完成。

任何有关如何解决此问题的建议将不胜感激。

谢谢你!

4

1 回答 1

2

你可以添加:

[x y]=find( abs(W-round(W))<eps )

并找到 W 的整数值及其对应的 x 和 y 索引。然后

[x y W(find( abs(W-round(W))<eps ))]

会给你所有的三胞胎...

于 2013-10-24T22:01:58.163 回答