今朝、面白いパズルがエレベーターのボタンを見て私に来ました。
2x3グリッドに収まるすべての点字パターンのリストを生成する必要があります。ハッシュ#
を使用してバンプ-
を示し、ハイフンを使用して平坦な領域を示します。
予想される出力サンプル:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
ルール:
- プログラムでは、各パターンを少なくとも1つの文字または行で区切る必要があります。
- パターンは任意の順序で生成できます。
- 点字のアルファベットが実際に使用するものに関係なく、すべてのパターンを作成する必要があります。完全に空白のパターンはオプションです。
- 一意のバンプパターンのみを生成する必要があります。以下のパターンは、バンプが同一の配置にあるため、同等と見なされます。これらの場合、左上隅に最も近いパターン(つまり、この例の最初のオプション)を使用します。
#- -# -- --
#- -# #- -#
-- -- #- -#
あなたはそれがすべてのために動作させることができればボーナスポイントのxでyの大きさのグリッド。(編集:妥当な範囲内。概念実証には4x4までで十分です。)
ウィキの記事を読むと、このパズルのルールを満たす45のパターン(空白を含む)があるようです。
x
のxy
グリッドは、最初に発生2^(xy)
に対して0にマスクするものから数字やフィルタを2^x - 1
か(2^(xy+1) - 1)/(2^y - 1)
。