如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。
方法一:按照等差数列两个相邻的数之间的差值相等
n = int(input("n="))
l = input("elements are :")
l = [int(i) for i in l.split()]
l.sort()
def isgen(N,L):
for i in range(n-2):
if L[i+2]-L[i+1]==L[i+1]-L[i]:
return 'possible'
else:
return 'impossible'
print(isgen(n,l))
不要再傻乎乎的自己编排序的算法了。
方法二:利用等差数列的求和公式,算出等差比d,如果d是一个整数,那它就是一个数列,如果它有余数,那它就不是一个数列
n = int(input("n="))
l = input("elements are :")
l = [int(i) for i in l.split()]
def isgen(N,L):
m = min(L)
s = sum(L)
d =(s - N*m)*2%(N*(N-1))
if d!=0:
return 'impossible'
return 'possible'
print(isgen(n,l))