blob: a27d2b676e08ec22ec0016e2ae2f7215b2a2ec32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def ulam_sequence(u, v, n=10):
sequence = [u, v]
while len(sequence) < n:
sums = {
sequence[i] + sequence[j]: 0
for i in range(len(sequence))
for j in range(i + 1, len(sequence))
}
for i in range(len(sequence)):
for j in range(i + 1, len(sequence)):
sums[sequence[i] + sequence[j]] += 1
next_val = min(x for x in sums if sums[x] == 1 and x > sequence[-1])
sequence.append(next_val)
return sequence
print(ulam_sequence(1, 2))
print(ulam_sequence(2, 3))
print(ulam_sequence(2, 5))
|