この質問はアーベルサンドパイルに関するものです。読むこの前の挑戦をしてこのnumberphileのビデオを見て多くを学ぶために。
サイズのアーベル砂山NによってNは番号0、1、2及び3(砂の粒の数を表す)を含むグリッドです。2 sandpilesを追加すると、最初の要素で要素を追加し、その後で働く転倒 3.あなたがいない問題で、最終結果は同じであるん打倒する順番以上になる任意の要素を。セルが転倒すると、その数は4減少し、直接隣接するセルはそれぞれ1増加します。これにより、連鎖反応が発生する可能性があります。セルがグリッドの端にある場合、転倒中にグリッドから落ちる粒子はすべて消えます。
たとえば、2 x 3のサンドパイルを追加しています(かなり極端な連鎖反応を与えます)。
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
3 3 3 + 2 1 2 = 5 4 5 -> 6 0 6 -> 2 4 2 -> 3 0 3 -> 5 0 5 -> 1 4 1 -> 2 0 2 -> 4 0 4 -> 0 4 0 -> 1 0 1
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
この課題では、我々はすべての可能なサブセットに興味のnでnは sandpiles。このサブセットは、すべての-3Sに任意の砂山を追加することによって得ることができることを任意の砂山含まNによりn個の砂山を。たとえば、上記の例212 | 101 | 212
ではサブセットに含まれていることがわかりました。これは、すべて3つのサンドパイルに何かを追加することで得られたためです。
現在、このサブセットには興味深い要素、アイデンティティ要素があります。この要素を取得してサブセット内の他の要素に追加すると、合計は変更されません。つまり、この砂山はこのサブセットのゼロのように機能します。それ212 | 101 | 212
は3 x 3のサブセットのゼロ要素です。たとえば:
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
2 2 2 + 1 0 1 = 3 2 3 -> 5 2 5 -> 1 6 1 -> 2 2 2
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
さて、これはあなたの挑戦です:与えられたn個のサブセットの身元要素を見つけるのnによるn個のグリッドを。それぞれに十分なコントラストのある一意の色を割り当てて0, 1, 2, 3
、n x nの画像を出力することで出力します。あなたのコードは、合理的な最新のPCで1分以内に50 x 50のケースを生成できなければなりません。
たとえば、500 x 500のアイデンティティ要素:
ここでは、青= 3、緑= 2、赤= 1、白= 0です。しかし、答えにこの配色を使用する必要はありません。