关于如何快速生成勾股数三元组
#数学 #Python
问题由来
最近在刷 Project Euler,虽然目前刷的都是简单题,还是发现了我在数学方面的很多不足.
比如这个问题:如何生成周长 $p$ 满足 $p <= 1000$ 的所有勾股数三元组?
暴力求解
最容易想到的肯定是暴力求解法, 设三边为 a, b, c, 且 $a < b < c$,简单确定下a的范围
遍历所有的 a , b 和 p, 挨个判断是不是勾股数
暴力代码如下
for a in range(1, 334):
for b in range(a+1, 1000-334):
for p in range(1, 1001):
c = p - a - b