Advertisement
Guest User

バシク行列数をRubyで

a guest
Sep 6th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.91 KB | None | 0 0
  1. #バシク行列数
  2. #原典(BASIC): http://ja.googology.wikia.com/wiki/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%96%E3%83%AD%E3%82%B0:BashicuHyudora/BASIC%E8%A8%80%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E5%B7%A8%E5%A4%A7%E6%95%B0%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81
  3.  
  4. a = 9
  5. b = (0..Float::INFINITY).each.lazy.map{(0..Float::INFINITY).each.lazy.map{0}} #遅延実行
  6. c = (0..Float::INFINITY).each.lazy.map{0}
  7. h = k = l = 0 #グローバル変数として宣言, 初期化
  8.  
  9. 0.upto(9) do |d|
  10.     b[1] = Array.new(a+1, 1)
  11.     f = 1
  12.     while f>0
  13.         a **= 2
  14.         1.upto(e) do |g| (h = g-1; break) if b[f][g]==0 end    
  15.         0.upto(f) do |i|
  16.             0.upto(h) do |j| k += 1 if b[f-i][j] < b[f][j] end
  17.             (l = i; break) if h+1==k or b[f][0]==0
  18.             k = 0
  19.         end
  20.         c = (0..h).map do |m| b[f][m] - b[f-l][m] end
  21.         1.upto(a*l) do |n|
  22.             b[f] = (0..h-1).map do |o| b[f-l][o] + c[o] end
  23.             b[f][h] = b[f-l][h]
  24.             f += 1
  25.         end
  26.         f -= 1
  27.     end
  28. end
  29.  
  30. p a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement