繁体   English   中英

如何删除列表中的元组重复项,其中元组元素的顺序相反?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM