[英]How remove duplicates of tuples in a list, where the tuple elements are in reverse order?
我正在做一个分配,我的程序将向用户询问一个正整数n ,图表将找到正整数a和b,满足a ^ 3 + b ^ 3 = n 。
到目前为止,我的工作和进展如下所示
def ramunajan(n):
list=[]
u = int(n**(1/3)+1)
for a in range (0,u):
b = (n-a**3)**(1/3)
b = round(b)
if a**3+b**3 == n:
list.append((a,b))
return list
while True:
try:
n = input("För vilket positivt heltal n vill du hitta a och b där a^3 + b^3 = n ?\n")
except ValueError or n <= 0:
continue
else:
break
list_1 = ramunajan(int(n))
print (list_1)
(输入文本为瑞典语。)
我现在的问题是,当用户输入例如1729时,程序会相应地提供输出
您想为a和b取多少个整数,满足a ^ 3 + b ^ 3 = n?
1729
[(1,12),(9,10),(10,9),(12,1)]
如何从列表中删除反向重复项,即(10,9)和(12,1)?
谢谢!
用u = int((n**(1/3))/2) + 1
替换u = int(n**(1/3)+1)
因此它仅检查池的前半部分,因为后半部分是重复项
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.