注:この投稿では、「文字」と「色」という用語は本質的に同じ意味です
この画像:
として表すことができます
....'''333
.eeee'''3e
..dddd33ee
%%%dd####e
(アスキー文字への色のマッピング)
4つの色の定理は、「隣接する領域に平面を分離してマップと呼ばれる図を生成する場合、隣接する2つの領域が同じ色にならないように、マップの領域に色を付けるために必要な色は4つだけです。2つコーナーではない共通の境界を共有する領域は隣接と呼ばれます。コーナーは3つ以上の領域で共有されるポイントです。」-ウィキペディア(リンク)
これは、エッジを共有する2つの部分が色を共有しないように、4色を使用してマップに色を付けることが可能であることを意味します。
4色のみを使用してマップに色を付けるアルゴリズムは複雑であるため、この課題では、プログラムは5色以下を使用してマップに色を付けるだけで済みます。
色を変更した以前のマップは次のようになります。
これは次のように表すことができます
....'''333
.eeee'''3e
..dddd33ee
333dd....e
または同等に
@@@@$$$!!!
@^^^^$$$!^
@@<<<<!!^^
!!!<<@@@@^
チャレンジ:
ASCII文字(各文字が異なる色を表す)で構成される「マップ」が与えられた場合、マップを「色変更」(異なるASCII文字を使用してマップを表す)して、5色以下しか使用しないようにします。
例:
入力:
%%%%%%%%%%%%##########$$$$$$$$%%
*****%%%####!!!!!!!%%%%%%%%%#^^^
(((((((***>>>>??????????%%%%%%%%
&&&&&&&&$$$$$$$^^^^^^^))@@@%%%%%
^^^^^^%%%%%%%%%%%%##############
可能な出力:
11111111111122222222223333333311
44444111222255555551111111112444
22222224441111444444444411111111
55555555222222255555553355511111
22222211111111111122222222222222
明確化:
- 入力マップは常に6文字以上を使用します
- 出力には5つの異なる文字を使用できます
- 出力では5文字未満を使用できます
- 入力は、適切な形式(配列の配列、または文字列の配列を含む)で取得できます。
- これはコードゴルフなので、最も短い答えが優先されます。
この例にはエラーはありません。それは、例がどちらの方法でも機能するということだけです-間違いではなく、あいまいです。同じ文字でラベル付けされた異なる領域が、ルール内の同じ領域か複数の領域かを指定すると役立ちます。
—
MildlyMilquetoast 2017年
おかしなことに、私は今、4色の定理の証明についてエッセイを書いています。5色の定理の証明はそれほど複雑ではありません
—
MildlyMilquetoast


121この問題を回避するには、マップが3つの別個の領域として扱われるべきですか、それとも例が示唆しているのでしょうか、それとも2つとして扱う必要がありますか。