我试图做的是,如果再次使用10示例,则阻止相同的答案以不同的顺序出现,输出为:
6 + 21 + 28 = 55
6 + 28 + 21 = 55
10 + 45 = 55
21 + 6 + 28 = 55
21 + 28 + 6 = 55
28 + 6 + 21 = 55
28 + 21 + 6 = 55
45 + 10 = 55
但显然6 + 21 + 28 = 55与6 + 28 + 21 = 55相同,10 + 45 = 55和45 + 10 = 55等等......他们只是在一个不同的顺序。那么有谁知道一个简单的方法我可以检查以确保这组值不以任何顺序重复?如果您仍然对我尝试做的事情有疑问,请发表评论然后尝试解释一下这一点。
def f(x):
newX = 0
for i in range(0,x):
newX = newX + i
return newX
def main():
lst = []
inpt = input("What number triangular number would you like to test: ")
for i in range(2,inpt+2):
x = f(i)
lst.append(x)
find(x, lst)
#x is the triangular number, lst is list of all of them up to it
def find(x, lst):
a = 0
b = 0
c = 0
length = len(lst)
print(lst)
last = lst[length-1]
for j in lst:
a = j
for k in lst:
b = k
if(a+b == x):
if(a != b):
print(str(a) + " + " + str(b) + " = " + str(x))
for i in lst:
c = i
if(a+b+c == x):
if(a != b and a != c and b != c):
print(str(a) + " + " + str(b) + " + " + str(c) + " = " + str(x))
print
main()
答案 0 :(得分:1)
>>> [1, 2, 3] == [1, 3, 2]
False
>>> sorted([1, 3, 2])
[1, 2, 3]
>>> [1, 2, 3] == sorted([1, 3, 2])
True
规范化是一组元素只有一个排序的过程。这使得相同元素的不同排序之间的比较变得相等。