gpt4 book ai didi

python - 输出重复

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:20 26 4
gpt4 key购买 nike

我编写了这个程序,它输出毕达哥拉斯三元组,其总和是某个数字(这将是参数)。该程序运行完美,但相同的三元组出现多次,而我希望一个三元组只出现一次。我想知道是否有人可以帮助我。谢谢!

def pythagoreanCheck(tripletList):
'''
Checks whether the three numbers are pythagorean triplet
returns True or False
'''

trip_list = [0,1,2]

if tripletList[0]**2 + tripletList[1]**2 == tripletList[2]**2:
return True
else:
return False

def givMeSum(target):
'''
returns 3 numbers such that their sum is equal to target
'''

listOfa = xrange(1,target)
listOfb = xrange(1,target)
listOfc = xrange(1,target)

for i in listOfa:
for j in listOfb:
for k in listOfc:
add = i + j + k

if add == target:
add_list = [i,j,k]
add_list.sort()

value = pythagoreanCheck(add_list)

if value:
print add_list


def main():
givMeSum(12)

main()

最佳答案

这是因为您在嵌套列表中进行计算,然后创建相同数字的 3 种不同排列的排序列表。

由于 i、j、k 会输入相同三个数字的不同组合 3 次,因此 add 每次都会等于 target,这意味着 add_list 被创建并排序了 3 次。这意味着它将创建相同的列表 3 次。

我认为你应该拿出来

add_list.sort()

Siddharth 是对的,你的算法效率确实很低。您将其转换为 O(n^3) 算法,对于较大的目标数字,这可能需要很长时间。

关于python - 输出重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13190257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com