; Grand finale of these few posts on Cantor's enumerations is ; enumeration of all finite sequences of natural numbers - including ; singles. Same Cantor's trick, but this time on more abstract ; level, can be used: ; ; a11, a12, .... is enumerated list of all singles ; a21, a22, .... is enumerated list of all pairs ; a31, a32, .... is enumerated list of all triplets ; ... ; ; It doesn't matter that aij's are the result of the Cantor's enumeration; ; Same Cantor's enumeration can be applied again: ; a11, a12, a21, a31, a22, a32 ... ; ; After such enumeration, all finite sequences will be on our list, enumerated. ; ; What might be the next step - enumerating all infinite sequences? ; Unfortunately, it is impossible. ; ; If you want to run this post as program, you need to cut and paste ; previous two posts on the beginning. Alternatively, you can simply ; read the posts and believe me about results. (println) (define cantors-enumeration-finite (lambda(n) (cantors-enumeration (cantors-row n) (cantors-column n)))) (define cantors-enumeration-finite-inverse (lambda() (let((arguments (args))) (cantors-enumeration-inverse (length arguments) (apply cantors-enumeration-inverse arguments))))) ; Test (for(i1 1 45) (letn((i2 (cantors-enumeration-finite i1)) (i3 (apply cantors-enumeration-finite-inverse i2))) (println (format "%2d" i1) " -> " i2 " -> " (format "%2d" i3)))) ; The result is pretty: 1 -> (1) -> 1 2 -> (2) -> 2 3 -> (1 1) -> 3 4 -> (3) -> 4 5 -> (1 2) -> 5 6 -> (1 1 1) -> 6 7 -> (4) -> 7 8 -> (2 1) -> 8 9 -> (1 1 2) -> 9 10 -> (1 1 1 1) -> 10 11 -> (5) -> 11 12 -> (1 3) -> 12 13 -> (2 1 1) -> 13 14 -> (1 1 1 2) -> 14 15 -> (1 1 1 1 1) -> 15 16 -> (6) -> 16 17 -> (2 2) -> 17 18 -> (1 2 1) -> 18 19 -> (2 1 1 1) -> 19 20 -> (1 1 1 1 2) -> 20 21 -> (1 1 1 1 1 1) -> 21 22 -> (7) -> 22 23 -> (3 1) -> 23 24 -> (2 1 2) -> 24 25 -> (1 2 1 1) -> 25 26 -> (2 1 1 1 1) -> 26 27 -> (1 1 1 1 1 2) -> 27 28 -> (1 1 1 1 1 1 1) -> 28 29 -> (8) -> 29 30 -> (1 4) -> 30 31 -> (3 1 1) -> 31 32 -> (2 1 1 2) -> 32 33 -> (1 2 1 1 1) -> 33 34 -> (2 1 1 1 1 1) -> 34 35 -> (1 1 1 1 1 1 2) -> 35 36 -> (1 1 1 1 1 1 1 1) -> 36 37 -> (9) -> 37 38 -> (2 3) -> 38 39 -> (1 1 3) -> 39 40 -> (3 1 1 1) -> 40 41 -> (2 1 1 1 2) -> 41 42 -> (1 2 1 1 1 1) -> 42 43 -> (2 1 1 1 1 1 1) -> 43 44 -> (1 1 1 1 1 1 1 2) -> 44 45 -> (1 1 1 1 1 1 1 1 1) -> 45 |
Cantor's Enumerations (3)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment