2016年7月10日日曜日

160710

Ruby


平面的2進数(1)

せきゅーんさんの記事(http://integers.hatenablog.com/entry/2016/07/05/232148)を見て、
butchi氏が卒業論文(http://butchi.jp/documents/b-thesis.pdf)で研究したという
平面的2進数を計算しようと思った。

n = 37
# Nは大きめ
N = 50
a = Array.new(N){Array.new(N, 0)}
p 0
p [0]
p ""
max = 0
n.times{|i|
  a[0][0] += 1
  (0..N - 1).each{|i|
    (0..N - 1).each{|j|
      if a[i][j] > 1
        a[i][j] %= 2
        a[i + 1][j] += 1
        a[i][j + 1] += 1
        max = [max, j + 1].max
      end
    }
  }
  p i + 1
  (0..max).each{|i| p a[max - i][0..max].reverse}
  p ""
}

出力結果
0
[0]
""
1
[1]
""
2
[0, 1]
[1, 0]
""
3
[0, 1]
[1, 1]
""
4
[0, 1, 1]
[1, 0, 0]
[1, 0, 0]
""
5
[0, 1, 1]
[1, 0, 0]
[1, 0, 1]
""
6
[0, 1, 1]
[1, 0, 1]
[1, 1, 0]
""
7
[0, 1, 1]
[1, 0, 1]
[1, 1, 1]
""
8
[0, 1, 1, 1]
[1, 0, 1, 0]
[1, 1, 0, 0]
[1, 0, 0, 0]
""
9
[0, 1, 1, 1]
[1, 0, 1, 0]
[1, 1, 0, 0]
[1, 0, 0, 1]
""
10
[0, 1, 1, 1]
[1, 0, 1, 0]
[1, 1, 0, 1]
[1, 0, 1, 0]
""
11
[0, 1, 1, 1]
[1, 0, 1, 0]
[1, 1, 0, 1]
[1, 0, 1, 1]
""
12
[0, 1, 1, 1, 0]
[1, 0, 1, 0, 1]
[1, 1, 0, 0, 1]
[1, 0, 0, 0, 0]
[0, 1, 1, 0, 0]
""
13
[0, 1, 1, 1, 0]
[1, 0, 1, 0, 1]
[1, 1, 0, 0, 1]
[1, 0, 0, 0, 0]
[0, 1, 1, 0, 1]
""
14
[0, 1, 1, 1, 0]
[1, 0, 1, 0, 1]
[1, 1, 0, 0, 1]
[1, 0, 0, 0, 1]
[0, 1, 1, 1, 0]
""
15
[0, 1, 1, 1, 0]
[1, 0, 1, 0, 1]
[1, 1, 0, 0, 1]
[1, 0, 0, 0, 1]
[0, 1, 1, 1, 1]
""
16
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 0, 0]
""
17
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 0, 1]
""
18
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 0, 0, 1]
[0, 1, 0, 0, 1, 0]
""
19
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 0, 0]
[1, 0, 0, 0, 0, 1]
[0, 1, 0, 0, 1, 1]
""
20
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 1, 1]
[1, 0, 0, 1, 0, 0]
[0, 1, 0, 1, 0, 0]
""
21
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 1, 1]
[1, 0, 0, 1, 0, 0]
[0, 1, 0, 1, 0, 1]
""
22
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 1, 1]
[1, 0, 0, 1, 0, 1]
[0, 1, 0, 1, 1, 0]
""
23
[0, 1, 1, 1, 1, 0]
[1, 0, 1, 1, 0, 1]
[1, 1, 0, 1, 0, 0]
[1, 1, 1, 0, 1, 1]
[1, 0, 0, 1, 0, 1]
[0, 1, 0, 1, 1, 1]
""
24
[0, 1, 1, 1, 1, 0, 0]
[1, 0, 1, 1, 0, 1, 0]
[1, 1, 0, 1, 0, 0, 1]
[1, 1, 1, 0, 0, 1, 1]
[1, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 1, 1, 0, 0]
[0, 0, 1, 1, 0, 0, 0]
""
25
[0, 1, 1, 1, 1, 0, 0]
[1, 0, 1, 1, 0, 1, 0]
[1, 1, 0, 1, 0, 0, 1]
[1, 1, 1, 0, 0, 1, 1]
[1, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 1, 1, 0, 0]
[0, 0, 1, 1, 0, 0, 1]
""
26
[0, 1, 1, 1, 1, 0, 0]
[1, 0, 1, 1, 0, 1, 0]
[1, 1, 0, 1, 0, 0, 1]
[1, 1, 1, 0, 0, 1, 1]
[1, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 1, 1, 0, 1]
[0, 0, 1, 1, 0, 1, 0]
""
27
[0, 1, 1, 1, 1, 0, 0]
[1, 0, 1, 1, 0, 1, 0]
[1, 1, 0, 1, 0, 0, 1]
[1, 1, 1, 0, 0, 1, 1]
[1, 0, 0, 0, 0, 1, 0]
[0, 1, 0, 1, 1, 0, 1]
[0, 0, 1, 1, 0, 1, 1]
""
28
[0, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 1, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 1, 1, 0, 0]
""
29
[0, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 1, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 1, 1, 0, 1]
""
30
[0, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 1, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 1, 1, 1, 0]
""
31
[0, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 0, 1, 1, 1]
[1, 0, 0, 0, 0, 0, 0, 1]
[0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 1, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 1, 1, 1, 1]
""
32
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 0, 0]
""
33
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 0, 1]
""
34
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 0, 0, 1, 0]
""
35
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 0, 0]
[0, 0, 1, 0, 1, 0, 0, 0, 1]
[0, 0, 0, 1, 0, 0, 0, 1, 1]
""
36
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 1, 1]
[0, 0, 1, 0, 1, 0, 1, 0, 0]
[0, 0, 0, 1, 0, 0, 1, 0, 0]
""
37
[0, 1, 1, 1, 1, 1, 0, 0, 0]
[1, 0, 1, 1, 1, 0, 1, 0, 0]
[1, 1, 0, 1, 1, 0, 0, 1, 0]
[1, 1, 1, 0, 1, 0, 0, 0, 1]
[1, 1, 1, 1, 0, 0, 1, 1, 0]
[1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 1, 0, 0, 1, 1]
[0, 0, 1, 0, 1, 0, 1, 0, 0]
[0, 0, 0, 1, 0, 0, 1, 0, 1]
""

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。