2枚の紙が重なるような幾何学の問題か。重なる面積を求める。
四角い紙切れが2枚あるとき、縦に4本、横に4本の線がある。重なっている時には4つの辺のうち、内側2本の交点でできる四角の面積が重なりになる。左上を頂点とする座標にすると分かりやすいだろうか。
1 2 3 4
1
2 ■■
3 ■■
4
1枚目が2枚目に重ならない条件は、1枚目の大きい方の座標の縦又は横が、それぞれもう一枚の紙の小さい方の座標(縦・横いずれか)より小さい場合。
1 2 3 4
1 □□
2 □□
3 □□
4 □□
それで、どんなイメージがあるかというと、毎ターン重なりがある部分が残って存続していくような。だから何がどうという話ではない。
(9/17)
1枚目が需要・2枚目が供給(どっちが先でも)、3枚目が需要・4枚目が供給~以下同様としていくと応用できそう。ただし、座標への意味付けがいまいち、地理的な意味とか話がかぎられるかな。重なっている部分が次のターンへ残るイメージを掴むには簡単だ。
そこで、同じことを説明するために、紙を重ねなくても(プログラミング言語でいうところの)配列で、2つの配列の同じ位置にどんな値があるか、としても道具としては同じで、2次元配列として縦横の座標を配列の添え字に用いると"紙"のデータ構造になる。遺伝的プログラミングというやつで、2つの染色体の23番目の位置がXとYの時~みたいな話。座標はもっと抽象的になって意味付けができる。
紙の重なりは、重なっているorいないの、0または1の2値のどちらかでよいけど、もっと情報を持たせて、遺伝子情報を真似ようとしたら出力パタンが入力の掛け合わせでどうなるか、のような出力パタンも決めておく必要がある。
紙が斜めに重なってた時に、となると、重なりを求める計算式が難しくなる。傾きは応用する時のパラメータとしては使用しない。これは傾きに意味付けしようとしても用途がない為。だから道具としては配列のデータ構造で、傾きの情報はそぎ落しても問題ないかな。
以上、今後使うかもしれない道具のお話でした。