グラフィックでお願いします。

 投稿者:GAIメール  投稿日:2008年12月 5日(金)07時34分7秒
  カードでのグラフィックが可能なことを利用して、次の現象を再現したいのですが
絵札(J,Q,K)とAの16枚を使う。
このカードを裏向きに4×4の行列形式に並べ(下の番号順に並べる)
カードの位置を(演者側から見た番号)
1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16
とする。
これ全体を一枚の紙と見立てて一枚のカードの大きさに折る操作を行なう。
<折り方の方法>
何処の位置(カードとカードの間の縦または横線)
でもかまわない部分を指定してもらい
例えば 1  2  3  4
     --------------
    5  6  7  8
の間の線ならば、1  2  3  4
のカードをひっくり返して
        5  6  7  8
のカードの上に重ねる。
また 2 |  3
      6 |  7
     10 | 11
     14 | 15
の線なら右半分(または左半分でもよい。)
を全て折り返して(カードはひっくり返ることになる。)

3 →  2
4 →  1
7 →  6
8 →  5
11 → 10
12 →  9
15 → 14
16 → 13
と重ねることとする。

これを客にその都度線を指定させ、16枚のカードが一つに重なるまで続ける。
(パケットは表向き、裏向きが混ざった状態にある。)
このパケットにおまじないをかけ、テーブルにリボンスプレッドしてみる。
(このとき、パケット全体をひっくり返しておく必要がある時が起きることもある。)

(パターンK)
仕込み:16枚のパケットの上から3,4,9,12枚目にKを配置しておく。
スタート:4×4に並べたカードの
     1,4,6,8,11,12,14,16番を表向きにする。(これは客から見てKに見える。)

(パターンA)
仕込み:16枚のパケットの上から5,7,8,16枚目にAを配置しておく。
スタート:4×4に並べたカードの
     1,3,5,6,7,9,11,14番を表向きにする。(これは客から見てAに見える。)

(パターンJ)
仕込み:16枚のパケットの上から4,9,10,15枚目にJを配置しておく。
スタート:4×4に並べたカードの
     2,5,7,9,12,13番を表向きにする。(これは客から見てJに見える。)

(パターンQ)
仕込み:16枚のパケットの上から1,4,14,16枚目にQを配置しておく。
スタート:4×4に並べたカードの
     3,4,6,8,9,11番を表向きにする。(これは客から見てQに見える。これは少し苦しい)

これらの仕込みと最初の初期設定からの折り返しを繰り返して、最後のパケットでの
スプレッドをするとそれぞれのパターンでの4枚だけのカードが 表向きで出現し、
他のカードは裏向きになっている。

というものです。(すみません、説明が長すぎて・・・)
 

Re: グラフィックでお願いします。

 投稿者:山中和義  投稿日:2008年12月 5日(金)19時39分34秒
  > 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


 

戻る