Skip to content

Instantly share code, notes, and snippets.

@mrdrozdov
Created January 11, 2022 14:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrdrozdov/713bdb87b0c76959e52d40d3ac7a1954 to your computer and use it in GitHub Desktop.
Save mrdrozdov/713bdb87b0c76959e52d40d3ac7a1954 to your computer and use it in GitHub Desktop.
peano demo
import random
def Merge(x, y):
return ''.join([a for t in zip(x, y) for a in t])
def Peano(x, y):
interim = ''.join(Merge(format(x, '08b'), format(y, '08b')))
return int(interim, base=2)
def generate(n=100, ln=30):
for _ in range(n):
x = 'a' * random.randint(0, ln)
y = 'b' * random.randint(0, ln)
yield x, y
data = sorted([item for item in generate()], key=lambda x: Peano(len(x[0]), len(x[1])))
for x, y in data:
print(len(x) + len(y), len(x), len(y), x, y)
$ python peano.py
5 3 2 aaa bb
6 4 2 aaaa bb
7 5 2 aaaaa bb
10 5 5 aaaaa bbbbb
12 5 7 aaaaa bbbbbbb
12 7 5 aaaaaaa bbbbb
11 3 8 aaa bbbbbbbb
13 2 11 aa bbbbbbbbbbb
16 1 15 a bbbbbbbbbbbbbbb
15 2 13 aa bbbbbbbbbbbbb
16 2 14 aa bbbbbbbbbbbbbb
17 3 14 aaa bbbbbbbbbbbbbb
13 4 9 aaaa bbbbbbbbb
14 6 8 aaaaaa bbbbbbbb
18 6 12 aaaaaa bbbbbbbbbbbb
11 8 3 aaaaaaaa bbb
11 9 2 aaaaaaaaa bb
11 11 0 aaaaaaaaaaa
12 10 2 aaaaaaaaaa bb
15 11 4 aaaaaaaaaaa bbbb
16 11 5 aaaaaaaaaaa bbbbb
20 14 6 aaaaaaaaaaaaaa bbbbbb
23 11 12 aaaaaaaaaaa bbbbbbbbbbbb
20 12 8 aaaaaaaaaaaa bbbbbbbb
21 13 8 aaaaaaaaaaaaa bbbbbbbb
24 14 10 aaaaaaaaaaaaaa bbbbbbbbbb
25 12 13 aaaaaaaaaaaa bbbbbbbbbbbbb
27 13 14 aaaaaaaaaaaaa bbbbbbbbbbbbbb
27 15 12 aaaaaaaaaaaaaaa bbbbbbbbbbbb
24 3 21 aaa bbbbbbbbbbbbbbbbbbbbb
24 3 21 aaa bbbbbbbbbbbbbbbbbbbbb
25 3 22 aaa bbbbbbbbbbbbbbbbbbbbbb
23 4 19 aaaa bbbbbbbbbbbbbbbbbbb
25 6 19 aaaaaa bbbbbbbbbbbbbbbbbbb
28 7 21 aaaaaaa bbbbbbbbbbbbbbbbbbbbb
27 0 27 bbbbbbbbbbbbbbbbbbbbbbbbbbb
28 2 26 aa bbbbbbbbbbbbbbbbbbbbbbbbbb
34 6 28 aaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbb
35 7 28 aaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbb
36 6 30 aaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
36 6 30 aaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
26 9 17 aaaaaaaaa bbbbbbbbbbbbbbbbb
29 9 20 aaaaaaaaa bbbbbbbbbbbbbbbbbbbb
31 8 23 aaaaaaaa bbbbbbbbbbbbbbbbbbbbbbb
33 11 22 aaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbb
31 13 18 aaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb
33 15 18 aaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb
38 13 25 aaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbb
41 15 26 aaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbb
40 12 28 aaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbb
17 16 1 aaaaaaaaaaaaaaaa b
17 17 0 aaaaaaaaaaaaaaaaa
19 17 2 aaaaaaaaaaaaaaaaa bb
22 19 3 aaaaaaaaaaaaaaaaaaa bbb
21 17 4 aaaaaaaaaaaaaaaaa bbbb
23 20 3 aaaaaaaaaaaaaaaaaaaa bbb
27 22 5 aaaaaaaaaaaaaaaaaaaaaa bbbbb
28 22 6 aaaaaaaaaaaaaaaaaaaaaa bbbbbb
24 16 8 aaaaaaaaaaaaaaaa bbbbbbbb
31 18 13 aaaaaaaaaaaaaaaaaa bbbbbbbbbbbbb
34 19 15 aaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbb
31 21 10 aaaaaaaaaaaaaaaaaaaaa bbbbbbbbbb
32 21 11 aaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb
37 22 15 aaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbb
28 27 1 aaaaaaaaaaaaaaaaaaaaaaaaaaa b
28 26 2 aaaaaaaaaaaaaaaaaaaaaaaaaa bb
32 25 7 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbb
32 27 5 aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbb
29 28 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaa b
30 28 2 aaaaaaaaaaaaaaaaaaaaaaaaaaaa bb
34 29 5 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbb
33 24 9 aaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbb
35 24 11 aaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb
35 24 11 aaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb
38 27 11 aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb
38 24 14 aaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbb
41 27 14 aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbb
39 28 11 aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb
39 30 9 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbb
45 30 15 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbb
33 17 16 aaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbb
35 18 17 aaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbb
37 16 21 aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbb
37 17 20 aaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb
40 17 23 aaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbb
41 22 19 aaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbb
40 16 24 aaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbb
47 18 29 aaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbb
49 23 26 aaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbb
41 25 16 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbb
43 24 19 aaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbb
44 25 19 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbb
47 27 20 aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb
48 26 22 aaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbb
48 29 19 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbb
48 28 20 aaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb
50 30 20 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb
54 27 27 aaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbb
55 25 30 aaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
55 26 29 aaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment