Vielleicht hilft euch das bei der Lösung von 42 weiter:
[src=python]Org1 = [64, 70, 73, 82, 105, 104, 89, 106]
Diff1 = [-6, -3, -9, -23, 1, 15, -17]
Dir1 = ['>', '>', '>', '>', '<', '<', '>']
Org2 = [84474, 349272, 1284192, 6648480, 24948000, 63504000, 97511040, 240166080]
Diff2 = [-264798, -934920, -5364288, -18299520, -38556000, -34007040, -142655040] # Eigentlich in falscher Reihenfolge und unsortiert
Dir2 = ['>', '>', '>', '>', '>', '>', '>'][/src]
Ich weiß nicht welche Zahl fehlt, aber wenn man auf "Diff1" (Difference) schaut, ist es die 2 kleinste Zahl in der Reihenfolge und 1 weil, positiv ein andere Sprung, deshalb auch die Dir (Directions), mit dem Verlauf in der Reihe von Zahl zu Zahl.
Hier der Code:
[src=python]# Test.py
input1=list(map(int, "64, 70, 73, 82, 105, 104, 89, 106".split(', ')))
input2=list(map(int, "84474, 349272, 1284192, 6648480, 24948000, 63504000, 97511040, 240166080".split(', ')))
def getNumOffsets(input):
offsets = []
for index, number in enumerate(input):
if index == 0:
continue
prevNum = input[index - 1]
offsets.append(prevNum - number)
return offsets
def getNumDirection(input):
directions = []
for index, number in enumerate(input):
if index == 0:
continue
prevNum = input[index - 1]
if number < prevNum:
directions.append('<')
elif number > prevNum:
directions.append('>')
elif number == prevNum:
directions.append('=')
return directions
no1Given = getNumOffsets(input1)
nd1Given = getNumDirection(input1)
no2Sort = getNumOffsets(input2)
nd2Sort = getNumDirection(input2)
print(input1)
print(no1Given)
print(nd1Given)
print(input2)
print(no2Sort)
print(nd2Sort)
[/src]
Edit: Zahl -23 müsste dann die größte aus der Reihenfolge sein und danach -17 zum Schluss.