バーンズリーのシダ
プログラム言語の構文と同じ計算を、以下のように表計算ソフトの関数を使用することでも実現できる。
なお、B8,C8,D8のセルには以下のような複数条件判定の関数(ネスティング参照)を入力する。
B8=IF(A8<($H$2),1,IF(A8<($H$2+$H$3),2,IF(A8<($H$2+$H$3+$H$4),3,4)))
C8=IF(B8=1,$B$2*C7+$C$2*D7+$F$2,IF(B8=2,$B$3*C7+$C$3*D7+$F$3,IF(B8=3,$B$4*C7+$C$4*D7+$F$4,$B$5*C7+$C$5*D7+$F$5)))
D8=IF(B8=1,$D$2*C7+$E$2*D7+$G$2,IF(B8=2,$D$3*C7+$E$3*D7+$G$3,IF(B8=3,$D$4*C7+$E$4*D7+$G$4,$D$5*C7+$E$5*D7+$G$5)))
最終8行目をオートフィルで適当な行数だけコピーし、XY散布図とするとバーンズリーのシダのフラクタル図が得られる。各変換式ƒの係数a,b,c,d,e,fと確率pは任意に変更可能である。
各列は以下のような計算を行っている。
A列 乱数を発生させる。
B列 乱数をもとに確率pに応じた条件判定を行い、用いる変換ƒを決める。
C列 先に決めた変換ƒに対応する計算をおこない、Xを求める。
D列 先に決めた変換ƒに対応する計算をおこない、Yを求める。
新たなXとYは前の行のXとYの値を使用し、反復的に計算を進める。