トランプ占いでの確率

 投稿者:GAIメール  投稿日:2008年12月20日(土)08時05分32秒
  1.トランプ(52枚)をよく切って、時計回りに1時の位置から文字盤のようにカードを裏にして12枚並べ、中心に13枚目のカードを置く。これを繰り返し全てのカードを配る。

2.13枚目の一番下のカードを引く。
そのカードが5の時は5時の位置の一番上に表向きにして置き、5時の位置の一番下のカードを引く。
このカードの数字の示す位置に表向きに置き、その位置の一番下のカードを引く。

3.13枚目の位置のKが4枚でるまで2.を繰り返す。


このルールで12組(1時から12時の組)が全て表になってしまう確率をみてみたいのですが、(できたら0組~12組での確率分布も知りたい。)
この占いをコンピュータにさせて頂けませんか?
 

Re: トランプ占いでの確率

 投稿者:SECOND  投稿日:2008年12月20日(土)13時12分19秒
  > No.176[元記事へ]

GAIさんへのお返事です。

昨近のTVで見られる、カード・マジックの中に、物理的には、有り得ないものが、
多々見られます、鳥肌立てて見ているよりは、遅れた頭をかかえる場合、なのか??

露骨に不思議なマジック、超常現象なども、代数学上の記述、異次元間の写像、
即ち、行列、マトリクスで、解き明かされる日が、将来来るようにも、思います。
世界も、私たち自身も、ひょっとして、巨大なだけの数学モデルかも・・!?
私は、頭悪くて代数学を、殆んど理解できませんが、その未来に魅せられています。
 

Re: トランプ占いでの確率

 投稿者:山中和義  投稿日:2008年12月20日(土)14時56分45秒
  > No.176[元記事へ]

GAIさんへのお返事です。

> このルールで12組(1時から12時の組)が全て表になってしまう確率をみてみたいのですが、(できたら0組~12組での確率分布も知りたい。)


パーフェクト(すべてのカードがめくられた状態)になるには、
カードをめくっていった順を考えると、最後の52枚目にKのカードがあればよい。
これが4通りで、残り51枚の並び順(めくった順)は51!通りだから、4*51!通りとなる。

また、52枚のカードを並べる順は、52!通り。

したがって、パーフェクトは、4*51!/52!=4/52=1/13となると思います。



めくった回数の期待値は、42回。分布は、1時から12時は、3.2枚。13時は4枚。
 

Re: トランプ占いでの確率

 投稿者:荒田浩二  投稿日:2008年12月20日(土)20時21分44秒
  > No.176[元記事へ]

GAIさんへのお返事です。

10万回の試行で、4枚とも表になる組数はすべて同じ確率で出現すると出ました。


  組   確率  平均枚数
   0  .07669  25.06枚
   1  .07519  31.20枚
   2  .07792  35.14枚
   3  .07686  38.10枚
   4  .07674  40.48枚
   5  .07722  42.48枚
   6  .07848  44.25枚
   7  .07573  45.84枚
   8  .07778  47.28枚
   9  .07741  48.59枚
  10  .07723  49.81枚
  11  .07564  50.94枚
  12  .07711  52.00枚
              42.41枚


DECLARE EXTERNAL SUB sort
PUBLIC NUMERIC c
LET tt=TIME
LET s=4
LET n=13
LET c=s*n
DIM check(c),card(c),position(n,s),face(n),total(0 TO n-1),count(0 TO n-1)
LET test=100000 ! 100000で125秒
FOR t=1 TO test
   CALL prep
   CALL play
NEXT t
LET cc=0
PRINT " 組   確率  平均枚数"
FOR i=0 TO n-1
   PRINT USING " ##  .#####  ##.##枚" : i,total(i)/test,count(i)/total(i)
   LET cc=cc+count(i)
NEXT i
PRINT USING "             ##.##枚" : cc/test
PRINT INT(TIME-tt);"sec"

SUB prep
   FOR i=1 TO c
      LET check(i)=RND
   NEXT i
   CALL sort(check,card)
   !MAT PRINT card;
   FOR j=1 TO s
      FOR i=1 TO n
         LET position(i,j)=card((j-1)*n+i)
      NEXT i
   NEXT j
   !MAT PRINT position;
END SUB
SUB play
   MAT face=ZER
   LET cc=0
   CALL open_card(n)
   !MAT PRINT face;
   LET f=0
   FOR i=1 TO n-1
      IF face(i)=s THEN LET f=f+1
   NEXT i
   LET total(f)=total(f)+1
   LET count(f)=count(f)+cc
END SUB
SUB open_card(nn)
   LET cc=cc+1
   LET look=position(nn,1)
   FOR j=1 TO s-1
      LET position(nn,j)=position(nn,j+1)
   NEXT j
   LET p=MOD(look,n)+1
   !PRINT p;
   LET face(p)=face(p)+1
   IF face(n)=s THEN EXIT SUB
   CALL open_card(p)
END SUB
END

REM 十進BASIC添付"\BASICw32\Library\SORT2.LIB"より
! ixにはmと下限,上限を一致させた空の配列を指定する。
! mは参照されるのみ。
! ixにmの添字を大きさの順に並べて返す。
! つまり,m(ix(1))≦m(ix(2))≦m(ix(3))≦・・・となる。
EXTERNAL SUB sort(m(),ix())
FOR i=1 TO c
   LET ix(i)=i
NEXT i
CALL q_sort(m,ix,1,c)
END SUB
EXTERNAL SUB q_sort(m(),a(),l,r)
IF r<=l THEN
   EXIT SUB
ELSE
   LET i=l-1
   LET j=r
   LET pv=m(a(r))
   DO
      DO
         LET i=i+1
      LOOP UNTIL pv<=m(a(i))
      DO
         LET j=j-1
      LOOP UNTIL j<=i OR m(a(j))<=pv
      IF j<=i THEN EXIT DO
      LET t=a(i)
      LET a(i)=a(j)
      LET a(j)=t
   LOOP
   LET t=a(i)
   LET a(i)=a(r)
   LET a(r)=t
   CALL q_sort(m,a,l,i-1)
   CALL q_sort(m,a,i+1,r)
END IF
END SUB
 

Re: トランプ占いでの確率

 投稿者:SECOND  投稿日:2008年12月21日(日)07時58分9秒
  > No.178[元記事へ]

山中和義さんへのお返事です。

問題が、よくわからないので、かん違いかもしれませんが、
パーフェクトの、4*51! 通りの中で、
13時の位置に、4枚のKが全て集まる配置の、4!*48! 通りは、
スタート時点で、無限ループに落ちるため、除かなくてよろしいですか。

すみません、カン違いでした。
 

戻る