2021年6月4日金曜日

巡回数と分数の周期

巡回数とは

代表的な

1 4 2 8 5 7

なら

1 4 2 8 5 7*2=2 8 5 7 1 4
1 4 2 8 5 7*6=8 5 7 1 4 2
1 4 2 8 5 7*4=5 7 1 4 2 8
1 4 2 8 5 7*5=7 1 4 2 8 5
1 4 2 8 5 7*1=1 4 2 8 5 7
1 4 2 8 5 7*3=4 2 8 5 7 1

これをどれでもいいから半分にして足すと

  5 7 1+4 2 8= 9 9 9

という風な数理トリックの有名なやつ

分数で1/7=0.142857.....

このうち小数点以下循環する桁の循環節の長さを周期または位数という

1/pという循環小数の循環節の周期をかんがえるのに

通常10がmod. Pで何回でまわるかをみればよい

これはカードのシャッフルなら十進でパーフェクトシャッフルしてもとにもどる回数となる

もし五十二枚目のシャッフルなら

1/53

10が原始元なら循環節の長さが52なはず

そうでないなら最小周期がそうなるはず

実際には

10^13≡1 mod.53

1/53=0.
R=13

52の約数の長さ13が循環するんだ‼


mod7
10≡3
3)3-2-6-4-5-1

3*10=30=4*7+2
2*10=20=2*7+6
6*10=60=8*7+4
4*10=40=5*7+5
5*10=50=7*7+1
1*10=10=1*7+3

初項とその等比数列をモドPでやった余りが巡回する

だからその巡回周期とその商たる循環節の長さが完全に一致する

初項をかえれば分子1以外にも対応


1/13=
mod.13
10)1-10-9-12-3-4
[0,7,6,9,2,3]

2/13=
10)2-7-5-11-6-8
[1,5,3,8,4,6]

二つの巡回数となる

10^6≡1 mod.13

10^6 -1 =13*

二つの巡回群にわかれたら二つの巡回数になるか?

じつはもうひとつの巡回数がかくれている

余りの数列の巡回数の二分割和

3 2 6 4 5 1

  3 2 6+4 5 1= 7 7 7

こっちのほうがいい

これを無理やりカードマジック風にしたら

「7のばくち」

七枚のカードをsands-matsuyama でp-1以下の自由な数でまわして
その置換の配列で7のペアをつくる

パーフェクトシャッフルではどんな配列でも相補性がでる

もっとすごい

じつは素数を法とした剰余環の巡回群は補数の平行性がある

なんと循環節の補数(足して分母の素数pとなる各元のペア)をたすと

2/13=
10)2-7-5-11-6-8
[1,5,3,8,4,6]
2+11=13

11/13=
10)11-6-8-2-7-5
[8,4,6,1,5,3]

  1 5 3 8 4 6
+8 4 6 1 5 3
  9 9 9 9 9 9

また足して素数pとなる分子同士の分数の剰余の置換表示をたすと素数pそのものとなり

これはもちろん
    2 7 5  11 6 8
+11 6 8   2  7 5
    13 13 13 13 13

これはステイスタックの法則です
Midyの定理?

まとめると

循環節の長さをシャッフルでもとめるには

余りの数列をパーフェクトシャッフルでもとめればよい

その置換の配列でもやはり巡回数とおなじ相補性がある

それは素数の性質で有限素体の乗法群が巡回群だから。

逆順シャッフル

逆順シャッフル(またはリバースシャッフル)

たとえば
1 2 3 4 56 7

がシャッフルの後に

7 6 5 4 3 2 1

となるようなシャッフル(置換)

これは有限群であるカードのシャッフルでは

XYZ ≡ -1

となればよい

ひとつは逆元をつかい

符号をかえればよい

2*27≡1 mod.53

でマイナスにすると

2*(-27)≡2*26≡52≡-1

(-2)*27≡51*27≡52≡-1

忘れちゃいけないのはトップカードが五十二枚目に移るだけじゃなくてすべてのカードが移る

あるいはオイラーの定理の変形の

X^r =-1 mod.p
でのr=(p-1)/2
ただしXは原始元

2^26≡-1 mod.53

あるいはウィルソンの定理

(p-1)! ≡-1 mod.p

6*5*4*3*2*1≡-1 mod.7

つまり枚数が素数じゃないといけないわけだ

もうひとつ逆順になる特殊な場合は

X^2 +1 =0
X^2  =-1

のmod.pでの

素数pが4n+1の型つまり13ならば

X=5,
X=-5(=8)

は逆順になるシャッフル

これは二次拡大体の虚数

X=i
i=√-1

を添加した根になり素数は素イデアル、割りきれた根との合同式

X^2 +1≡0 (mod.p)

をみたす二つの逆順になるシャッフル。



スペルトリックの求め方

パーフェクトシャッフルしたのちに相手の名前だけスペルしていくとメッセージがあらわれるという現象

これをやるにはまず素数枚数のカードでやる

素数じゃないと逆元の存在が保証されないし乗積表のうえからもよろしくない

で実際には

組み合わせによってかわるのだが

相手の名前の文字数をあらかじめ知っている場合は

その文字数の元の前のならびの元となるようなシャッフルを実行すればよい

具体的には

カードの枚数が十三枚で

相手の名前が二文字なら

XY≡2 (mod.13)

となる

XYのシャッフルをさがす

2*X≡1

ニの逆元をさがせばよく

2*7=14≡1

であるので

7のシャッフルをすると2の状態となってスペルすればsands/matuyamaのように順繰りでそろうはず

相手のスペルがわからない場合は乗積表のカンニングペーパーを用意しておくか?カードボックスの裏に張り付けたりして

また相手にディールシャッフルする数を指定してもらってもよい

その後に相手のスペルとなるようなカードのならびの元となるようなシャッフルをすればいい。

2021年6月3日木曜日

逆元の計算の実行

実際にシャッフルしたら

十七枚のカードで十進十二進のパーフェクトシャッフルしたらもとにもどるか

やり方

まず十七枚のカードを重ねた順番に一枚目が1二枚目が2という風にナンバリングする
当然トップが1でボトムが17

これを10箇所に配置して配っては集めるというディールシャッフルを実行する

まずは一枚ずつ十ヶ所に配ると思いきや

1   2   3 

4   5   6

7

まできたら八枚目は1に重ねる

8    9   10
1    2     3

11   12 13
4      5     6

14
7

また順番に重ねていき

ここで十五番目を最後のパイルの右側ににおき

さらにうえに十六と十七を一枚ずつおく

8    9   10
1    2     3

11   12  13
4      5      6

14  15
7                      16        17
            
集めるときには

最後の17を最初にてにとりそのうえに14,7の組を重ねそのうえに11,4を重ねていき

1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17
10.3.13.6.16.9.2.12.5.15.8.1.11.4.14.7.17

今度は十二進のシャッフルを実行する

結論からいうと計算結果からわりだしてるので

12.7.2.14.9.4.16.11.6.1.13.8.3.15.10.5.17

という風に取り上げていけばよいのはわかる

それを十二ヶ所に配っては集める

ただし一枚だけの箇所もあるので注意する

(今度のナンバリングはシャッフルを連続しているので上から読み替える必要がある)

集め方がだいぶ不規則なのでランダムなシャッフルに見えるか?

2021年6月2日水曜日

逆元の計算

乗法逆元とは

mod.pで

ax ≡1
なる元

ふつうの場合は逆数で

3* 1/3 =1

加法なら

7+(-7)=0

ですが

カードシャッフリングでの乗法逆元はアンチシャッフル

逆元の計算

ax + by =GCD(m)

ふつう
mod.pで

ax ≡1

はGCD(1)だから

ax + by =1

すなわち

ax + yp=1

さらに真ん中の符号をマイナスにしておく

十七枚のカードで十進のパーフェクトシャッフルをやったあとに完全にもとのならびに戻すには?

十進の乗法逆元をもとめればよい

拡張版ユークリッドのアルゴリズム

そこでつかうのが拡張版ユークリッドのアルゴリズムというもん

原理はさておいて実際には筆算で簡単にとける

逆元の求め方

10x - 17y =1

のxとyとの特別解を求めればよい

どうやるか

まず大きい方の数をかく

17

そのしたに小さい方の数をかく

17
10

大きい方から小さいほうを引けるだけ引く

その商を右にかく
17
10 1

そうしたら余りをしたにかく

17
10 1
7

またおなじように

17
10 1
7    1
3
これを余りが1になるまでやる

17
10  1
7    1

3    2
1

今度はその列の右側にしたから上に向かって0と1をかきこむ
それはきまりとなってる2

17
10  1
7    1
3    2             1
1→→→→→0

今度はそのうえに先程だした商をかけ算したものをかく

17
10  1
7    1             2
3    2  →→→1    
1→→→→→0

今度も同様にしてとなりの商とかけ算するがその結果に下の数を足した数をかきこむ

17
10  1    3
7  1→→→ 2
3    2  →→→1    
1→→→→→0

同様にして上までやる

17                5
10   1→→→3
7  1→→→ 2
3    2  →→→1    
1→→→→→0

うえの二つの数がxyのはず

ここで検算
もとの数字とたすきにかけてみて差が1になればよい

17        \  /    5 =50
10   1   /  \    3   =51
7  1→→→ 2
3    2  →→→1    
1→→→→→0

答えは小さい方がxで1つ大きい方がy
x=5
y=3

10*5 - 3*17 =-1?

ここでマイナス1となる場合はそれぞれ符号をかえればよい

10*(-5) -17(-3)=1

-5≡12  mod.17

ということに注意すると

求める答えは

10*12≡1

十二進のシャッフルをすればよい。

シャッフルと循環するカードの話

十三枚のカードで分割シャッフルする

循環小数とレピュニット

レピュニットとは

11111

77777

99999999

とかのおなじ数が連続する数字のこと

これがカードをシャッフルするとあらわれる周期と関係する

どういうことかというと

1111111111111

を面倒なので以下

R13というとする

シャッフルの計算で

10^13 - 1が53で割りきれれば

10^13 ≡+1 (mod. 53)

なので実際に

1-10-47-46-36-42-49-13-24-28-15-44-16-1

トランプ一組を十進でシャッフルしたら?十三回でもとにもどる

これはR13が53を因子としてもっているから

1以外の元もぜんぶモドる

じつはレピュニットの長さが十進でシャッフル(計算)したときの周期とつながる

トランプの枚数が因子とし

つまりは

1111111111111=53*79*265371653

またここから
10^13  ≡1  (mod.79)

10^13  ≡1 (mod.265371653)

もうひとつ

13を因子としてもっているレピュニットの長さはいくつか?

10^r ≡1 (mod.13)

10^r -1

の最小周期
10^6 ≡1

だから111111で六

111111=13*8547

循環小数の周期

1/p

pは素数とする

有名なシャッフルの式

a^p-1 ≡1(mod.p)

1/13

10^12≡1(mod.13)

である実際には分割シャッフルの手法で実行できるがここでは計算で

(1.10.9.12.3.4)
(2.7.5.11.6.8)

ということで循環周期は六

したがって

10^6≡1(mod.13)

因みに分割シャッフルでは三分割シャッフルでよい

また三回目には逆順となるので

10^3 ≡-1(mod.13)

つまり

10^3 +1≡0(mod.13)

つまり

1001=13*11*7

だから

10^3 +1≡0(mod.11)

10^3 +1≡0(mod.7)
だから

101,1001,10001....

こういう形の数は(名前があるのか?)

レピュニットの長さがどんな周期の素数を因子としてもっているかどうかできまるわけだ

ぜんぶおなじ周期をもっている素数が因子として集まってるわけだ‼。

高木さんの手品

高木さんの手品

といっても高木ブー

カードを一枚引いてくれという

それをデックに戻して混ぜてもらう

高木ブーはカードを見ないで当てる

どうして?

そうです

ぜんぶおなじカードだから

これがどうしてコメディマジックじゃないのか

マジックの要素がたりなすぎる

じゃあどうすればいいか

改作

カードをミラージュみたいに2wayフォーシングデックにする

はじめにえらぶのはフォーシングのほうで

あとで見せるのは表面のカード

それならばぜんぶおなじカードだからというと落ちになるか

コメディマジックとして成立する

演出でニュアンスが変わる

それならダブルデッカーでつくれば本当にぜんぶみせられる

もう作ってあるか

あれを流用すればいい

秘密の機構マークトになってるから

選ばせるときに読み取ればいい

そうすればおんなじことができる!