|
> No.144[元記事へ]
GAIさんへのお返事です。
> (パターンK)
> 仕込み:16枚のパケットの上から3,4,9,12枚目にKを配置しておく。
> スタート:4×4に並べたカードの
> 1,4,6,8,11,12,14,16番を表向きにする。(これは客から見てKに見える。)
折り紙の数理ですね。
●解析結果
向きが不動な箇所は、1,3,6,8,9,11,14,16である。 2,4,5,7,10,12,13,15は、反転する。
4×4配置なら
1 * 3 *
* 6 * 8
9 * 11 *
* 14 * 16
となる。
ところで、各カードの配置場所は、
1 * * 4 * 6 * 8 * * 11 12 * 14 * 16 <-- Kのパターン
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1 2 * * 5 6 7 8 * 10 11 * 13 14 15 16 <-- シャッフル後
したがって、3,4,9,12にKを配置しておけばよい。
1 * 3 * 5 6 7 * 9 * 11 * * 14 * * <-- Aのパターン
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
1 2 3 4 * 6 * * 9 10 11 12 13 14 15 * <-- シャッフル後
したがって、5,7,8,16にAを配置しておけばよい。
* 2 * * 5 * 7 * 9 * * 12 13 * * * <-- Jのパターン
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
* * * 4 * * * * 9 10 * * * * 15 * <-- シャッフル後
したがって、4,9,10,15にJを配置しておけばよい。
* 2 3 * * 6 * 8 9 * 11 * 13 14 * * <-- Qのパターン
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
* * 3 4 5 6 7 8 9 10 11 12 * 14 15 * <-- シャッフル後
したがって、1,2,13,16にQを配置しておけばよい。(訂正を反映)
次のプログラムで確認できます。どちらを折りたたむかで位置(a,b)は変わります。
LET N=4 !N行N列
LET a=-2 !折りたたむ位置(a,b)
LET b=2
DATA 0,1,1,0 !Qパターン ※1:表、0:裏
DATA 0,1,0,1
DATA 1,0,1,0
DATA 1,1,0,0
DIM M(N,N)
MAT READ M
FOR y=1 TO N !行
FOR x=1 TO N !列
IF MOD(ABS(x-a)+ABS(y-b),2)=1 THEN !格子上での距離 ※1:反転、0:そのまま
LET M(y,x)=1-M(y,x) !論理否定
END IF
PRINT M(y,x); !「0が4つ」または「1が4つ」の位置
NEXT x
PRINT
NEXT y
END
|
|