擅长:python、mysql、java
<p>你在日常生活中缺乏逻辑。没有什么可以强制三元组只有一个顺序:您的<code>x</code>和{<cd2>}是可互换的,并且您保证您会同时检查这两个。在</p>
<p>相反,使用循环限制来强制<code>x < y</code>,然后确保在<code>y</code>或{<cd5>}的值太大而不可行时停止。注意,这会去掉你的三个和的支票。在</p>
<pre><code>def tuplePyth(n):
list_=[]
for x in range(1, n):
for y in range(1, n):
for z in range (1, n):
if x+y+z<=n:
if smallestTrip(x, y, z)==False:
list_.append([x,y,z])
print (list_)
</code></pre>
<p>取而代之的是:</p>
^{pr2}$
<p>n=100时的输出:</p>
<pre><code>[[5, 12, 13], [7, 24, 25], [8, 15, 17], [9, 40, 41], [15, 36, 39], [16, 30, 34], [20, 21, 29]]
</code></pre>
<p>请注意,<code>smallestTrip</code>仍然存在问题:您的检查在逻辑上不等同于“最小三元组”。相反,检查这三个数字是否相对质数。由于Stack Overflow只允许每个帖子有一个问题,而且这个问题很容易在网上进行研究,所以我把它留给学生作为练习。:-)</p>