RubyのMatrix
C - Sierpinski carpet
の問題を解くために正攻法では再帰を使って座標を埋めていくのだけど他の人の回答の中にMatrixライブラリを使っている人がいた。
class Matrix (Ruby 3.3 リファレンスマニュアル)
は使ったことがなかったが今回の問題のような場合にはとても便利そう。
こんな感じで
c
に行列のarrayを指定して並べると直感的に行列作成ができる。
code:rb
Matrix.vstack(
Matrix.hstack(c, c, c),
Matrix.hstack(c, Matrix.build(n, n){'.'}, c),
Matrix.hstack(c, c, c)
)
シェルピンスキーのカーペット - Wikipedia
のようなフラクタルな図形を作成するのに最適。
ChatGPTの解説とメモ
https://chatgpt.com/share/1e74fe2d-88b7-4016-b646-d6f23ddb0533
ruby