読者です 読者をやめる 読者になる 読者になる

A Perfect Night For Bananafish

だがそれを語るには人生は短すぎる

パスカルの三角形

パスカルの三角形 - rubyco(るびこ)の日記をパクっt・・・参考に
パスカルの三角形の値を2で割った余りに置き換えるとwikipedia:シェルピンスキーのギャスケットになる。

cf.)1次元セル・オートマトン - A Perfect Night For Bananafish

半ば強引に文字に置き換え。

def combination(n, k)
  if k == 1 or k == n
    return 1
  else
    return combination(n - 1, k) + combination(n - 1, k - 1)
  end
end

count=15
(1..count).each { |n|
	a = Array.new
	s=count-n
	s.times { a.unshift(0) } if s>0
	(1..n).each  { |k|
		a << combination(n, k)%2
		a << 0 
	}
	s.times { a.push(0) } if s>0
	(a.size).times { |i|
		if a[i]==0
			print ""
		else
			print ""
		end
	}
	print n,"\n"
}

パフォーマンスは考えてないのでcount=20くらいまでにしといた方がよい。
実行結果

□□□□□□□□□□□□□□■□□□□□□□□□□□□□□□1
□□□□□□□□□□□□□■□■□□□□□□□□□□□□□□2
□□□□□□□□□□□□■□□□■□□□□□□□□□□□□□3
□□□□□□□□□□□■□■□■□■□□□□□□□□□□□□4
□□□□□□□□□□■□□□□□□□■□□□□□□□□□□□5
□□□□□□□□□■□■□□□□□■□■□□□□□□□□□□6
□□□□□□□□■□□□■□□□■□□□■□□□□□□□□□7
□□□□□□□■□■□■□■□■□■□■□■□□□□□□□□8
□□□□□□■□□□□□□□□□□□□□□□■□□□□□□□9
□□□□□■□■□□□□□□□□□□□□□■□■□□□□□□10
□□□□■□□□■□□□□□□□□□□□■□□□■□□□□□11
□□□■□■□■□■□□□□□□□□□■□■□■□■□□□□12
□□■□□□□□□□■□□□□□□□■□□□□□□□■□□□13
□■□■□□□□□■□■□□□□□■□■□□□□□■□■□□14
■□□□■□□□■□□□■□□□■□□□■□□□■□□□■□15

ネ?