ポーカーの確率

[ 3,4,3,4 ] 複合多面体

05[3,4,3,4] Compounds ポーカーの確率 多面体

下画像は [ 3,4,3,4 ] と その双対多面体を合体させた複合多面体です。
5×5mm の角材を用いて 以前お伝えしていた方法よりも 簡易な作業で作っています。
思いつくまま 制作方法を載せてゆこうと思っています。

いま この記事を入力しているPCは 二万円ほどで買った 新品のラップトップPC で
バッタものと いわれそうですが OSはWindows10です。
ポーカーの確率計算をさせると 三分弱です。
以前のPCは 32秒で output なので 比較になりませんが 立ち上がりが 早く
Google関連アプリや 十進BASIC 多倍長電卓LM LibreOffice などのフリーソフトの使用で満足しています。
これから [ 3,4,3,4 ] 複合多面体 について少しずつ載せてゆくつもりです。

[3,3,3,3,3] Platonic solid 再掲

04[3,3,3,3,3] ポーカーの確率 多面体 製作道具

[3,3,3,3,3] 正二十面体 Icosahedron の 板棒での製作についてお伝えします。
前回までの [5,5,5] の説明を 理解されているものとして 説明します。

[5,5,5] と同じ大きさにしようとしています。
[5,5,5] の稜寸 は 30mm でしたので
面芯寸 1.11 × 30 × 2 で 高さは 約 67mm てした。

[3,3,3,3,3] の 面芯寸は 稜寸 1 に対して 約 0.756 なので
[3,3,3,3,3] の稜寸 は 67 / 2 / 0.756 で 約 44mm となります。

治具の加工角度は 90 – 31.72 で 約 58.28 度です。
直角を挟む二辺の 比としては 233/144 もしくは 288/178 が近似値です。
下画像 中ほどが その治具と 完成品です。

部材と部材の接合部分は 正五角形の筒状の空洞ができるようにします。
あとは正三角形に正三角形を次々と付けてゆくだけです。

三十枚の部材全部の両端に 合成ゴム系接着剤を塗布し
最初に塗った部材から 順次接着してゆけば あっけなく完成です。

PIC_1628

画像右に電卓が二つ写っています。
上が Casio FX-915 で 三十年ほど前に買ったものです。
ソーラーバッテリーを電源とし 今も正常ですが
薄型のため 入力操作に 円滑さは不足しています。
ポーガーの確率計算で 組み合わせの数 52 C の 5 で
2598960 の 値が 簡単に 出てきたのに感激したのを覚えています。

下は 現在活用している Canon F-502G です。
今 最もリーズナブルに 購入できる 関数電卓の一つです。

デューラーの多面体 Dürer’s solid Truncated triangular trapezohedron

BASIC Dürer’s solid ポーカーの確率 多面体

レオナルド・ダ・ヴィンチ Leonardo da Vinci (1452-1519) と
同時代に ドイツで活躍した
アルブレヒト・デューラー Albrecht Dürer (1471-1528)
の銅版画 メランコリア I (Melencolia I) の中にある
特殊な八面体の製作をしようと思っています。
http://de.wikipedia.org/wiki/Albrecht_D%C3%BCrer 参照
本来なら 作品を完成してから 製作方法を伝えるべきですが
やっと 諸量の計算ができたところです。
早く お伝えしようと思い 作ったばかりの BASIC のプログラムを
載せておきます。計算方法の思い違いがあるかもしれませんが
実際に作品を作ってゆけば 発見できるでしょう。
この多面体の諸量については諸説あるようですが
石津秀子さんの 論文を参考にさせていただきました。
http://www.seijo.ac.jp/pdf/falit/188/188-4.pdf

!! コピー開始 
! メランコリア I (Melencolia I) の八面体の製作に
! 必要な諸量の計算 <試案>

! 菱形の鋭角を 72度とする
! 菱形の短いほうの対角線を 1とする
! 短いほうの対角線を底とする二等辺三角形を考える
! この二等辺三角形で
! 底を周方向とする二つの三角錐と一つの反角柱を作る
! 二つの三角錐に反角柱を挟んで 平行六面体を作り 
! 長方向の両端をカットした形状を作る
! 八面体は球に外接するとして計算

OPTION ANGLE DEGREES
LET m001=sqr(3)/6
LET m002=sqr(3)/3
LET m003=72                     ! 72        菱形鋭角
LET m004=0.5/tan(m003/2)        ! .688190960235587  対角線長寸/2 
LET m005=sqr(m004^2-m001^2)     ! .62471870823327   三角錐の高さ 反角柱の高さ
LET m006=sqr((m002)^2+m005^2)   ! .85065080835204   稜寸
LET m007=acos((m002)/m006)      ! 47.2566160617882  三角錐の稜の仰角
LET m008=sqr(m002^2+(m005/2)^2) ! .656431031744764  反角柱の外接球半径
LET m009=atn((m005/2)/m002)     ! 28.4143751956601  反角柱の高さ巾角/2
LET m010=m007+m009              ! 75.6709912574483  稜の球内侵入角度
LET m011=m008*sin(90-m010)*2    ! .324919696232906  三角錐のカット残の稜寸
LET m012=m006-m011              ! .525731112119134  切り離しする三角錐の稜寸  
LET m013=m012/m011              ! 1.6180339887499   切り分け稜寸比 (黄金比)
LET m014=m012*sin(m003/2)*2     ! .618033988749895  カット面三角の辺寸
LET m015=asin((m006/2)/m008)    ! 40.3861775591967  長稜巾角/2
LET m016=asin((m011/2)/m008)    ! 14.3290087425517  短稜巾角/2
LET m017=asin((m014/2)/m008)    ! 28.0831980645294  底稜巾角/2
LET m018=90-m015                ! 49.6138224408033  長稜端角
LET m019=90-m016                ! 75.6709912574483  短稜端角
LET m020=90-m017                ! 61.9168019354706  底稜端角
LET m021=90+m003/2              ! 126               五角底角
LET m022=(90-m003/2)*2          ! 108               菱形鈍角
LET m023=90-m018                ! 40.3861775591967  長稜仰角
LET m024=m006*cos(m023)         ! .647936163294299  長稜投影寸
LET m025=asin(0.5/m024)*2       ! 101.010156834313  長・長稜開き角
LET m026=(360-m025)/2           ! 129.494921582844  長・短稜開き角
LET m027=90-m019                ! 14.3290087425517  短稜仰角
LET m028=90-m020                ! 28.0831980645294  底稜仰角
LET m029=cos(m028)              ! .882264951894171  底稜投影縮小比
LET m030=asin(0.5/m029)*2       ! 69.0440756710915  底・底稜開き角
LET m031=(360-m030)/2           ! 145.477962164454  底・短稜開き角
LET m032=m005+m011*cos(m003/2)*2! 1.1504498203524   八面体長寸
LET m033=(1+sqr(5))/2           ! 1.61803398874989  黄金比
LET m034=atn(1/m033)*2          ! 63.4349488229222  黄金比の鋭角
LET m035=sqr(2)                 ! 1.4142135623731   白銀比
LET m036=atn(1/m035)*2          ! 70.5287793655091  白銀比の鋭角

PRINT "《メランコリア》の八面体"
PRINT "菱形対角線短寸",1        ! 1            
PRINT "菱形対角線長寸",m004*2   ! 1.37638192047117
PRINT "菱形鋭角"      ,m003     ! 72
PRINT "長稜寸"        ,m006     ! .85065080835204  
PRINT "短稜寸"        ,m011     ! .324919696232906
PRINT "底稜寸"        ,m014     ! .618033988749895
PRINT "長稜仰角"      ,m023     ! 40.3861775591967
PRINT "短稜仰角"      ,m027     ! 14.3290087425517
PRINT "底稜仰角"      ,m028     ! 28.0831980645294
PRINT "長・長稜開き角/2",m025/2 ! 50.5050784171565 
PRINT "長・短稜開き角/2",m026/2 ! 64.747460791422
PRINT "底・底稜開き角/2",m030/2 ! 34.5220378355458 
PRINT "底・短稜開き角/2",m031/2 ! 72.738981082227 
PRINT "八面体長寸"    ,m032     ! 1.1504498203524
PRINT "外接球直径",m008*2       ! 1.31286206348953
PRINT
PRINT "参考数値"
PRINT "黄金比" , "1 :" ;m033    ! 1 : 1.61803398874989 
PRINT "黄金比菱形の鋭角" ,m034  ! 63.4349488229222
PRINT "白銀比" , "1 :" ;m035    ! 1 : 1.4142135623731
PRINT "白銀比菱形の鋭角" ,m036  ! 70.5287793655091

END ! コピー終わり

以下は 整数比に変換した値です

 .85065080835204  131 / 154 
 .324919696232906  77 / 237 
 .618033988749895 144 / 233 
 40.3861775591967 131 / 154
 14.3290087425517  47 / 184
 28.0831980645294 127 / 238 
 50.5050784171565 182 / 150
 64.747460791422  212 / 100
 34.5220378355458 119 / 173
 72.738981082227  177 /  55
追伸
新しいパソコンに買い替えてこのブログを作っています。
以前お伝えした ポーカーの確率計算のプログラムを
このパソコンで run してみました。すると 32秒で output です。
以前は 半日もかかったのに
隔世の感を 新たにしているところです。

ポーカーの確率 番外

BASIC ポーカーの確率

久しぶりの投稿です。
ブログの作成を 休止してはいません。

お伝えする内容が まだ整っていません。
今まで私が作った BASIC のプログラムで 気に入っているものを 載せておきます。
バソコンの黎明期頃に作ったプログラムの リメイク版です。
当時は 計算結果がでるまで 12時間ほどかかりました。
今は 数分ほどです。

ポーカー役手を全数チェックするものです。
! 以下をコピーして実行してください。

! フリーウエアー 十進BASIC でプログラム     
! http://hp.vector.co.jp/authors/VA008683/ を参照  
! http://hp.vector.co.jp/authors/VA008683/english/index.htm 英語版        
! ポーカーの確率計算
OPTION BASE 0
DIM A(52,1)
LET  TT$=TIME$
LET  C4C=0
LET  CfH=0
LET  C3C=0
LET  C2P=0
LET  C1P=0
LET  RSF=0
LET  SFL=0
LET  FLS=0
LET  STR=0
LET  NP=0
LET  B=0
LET  CNT1=0
LET  CNT2=0

!     52枚の札を1~52の番号付けをする
!        種類の区別は 0001, 0010, 0100, 1000 の4通り
!        数字の区別は 0000000000001, 0000000000010 ~ 1000000000000 の 13通り
!        種類と数字のペア52通り として 登録 
FOR I=0 TO 3
   FOR J=0 TO 12
      LET  B=B+1
      LET  A(B,0)=10^I
      LET  A(B,1)=10^J
   NEXT J
NEXT I

! 52枚の札を1~52の番号付けして、ゼロと重複を認めない5桁の53進数
!    として表現し、それぞれの5桁の数列の中で、上位にある数は下位にある数
!    より小さいという条件で数列をつくり 2598960通り作成
!    5枚の札の組み合わせの特徴の表現は <例えばRSF>
!     種類 0005, 0050, 0500, 5000 と 数字 1000000001111 の 4種の組合せ  

PRINT CNT1,TT$                                    

FOR K= 1 TO 52-4
   FOR L=K+1 TO 52-3
      FOR M=L+1 TO 52-2
         FOR N=M+1 TO 52-1
            FOR O=N+1 TO 52
               LET  AA =A(K,0)+A(L,0)+A(M,0)+A(N,0)+A(O,0)+9*10^4
               LET  BB =A(K,1)+A(L,1)+A(M,1)+A(N,1)+A(O,1)+9*10^13
               LET  AA$=STR$(AA) 
               LET  BB$=STR$(BB)
               LET  A$=AA$(2:5)
               LET  B$=BB$(2:14) 
               LET  X=POS(B$,"4",1)  ! 同じ数字が4枚あるか
               IF X > 0 THEN 
                  LET  C4C=C4C+1     !4カード
                  GOTO 1000
               END IF
               LET  Y=POS(B$,"3",1)
               IF Y > 0 THEN GOTO 900 ELSE GOTO 901
900                REM
                   IF POS(B$,"2",1)  >0 THEN 
                      LET  CFH=CFH+1  !フルハウス
                      GOTO 1000
                   END IF
                   LET  C3C=C3C+1     !3カード
                   GOTO 1000
901                REM
                   LET  Z=POS(B$,"2",1)
                   IF Z > 0 THEN GOTO 902 ELSE GOTO 903

902                REM
                   IF POS(B$,"2",Z+1)  >0 THEN 
                      LET  C2P=C2P+1  !2ペアー
                      GOTO 1000
                   END IF
                   LET  C1P=C1P+1     !1ペアー
                   GOTO 1000              
903                REM    1枚も同じ数が無い数列                   
                   LET  ZZ=POS(A$,"5",1)                          
                   LET  ZX=POS(B$,"1",1) 
                   LET  ZX$=B$(ZX+1:ZX+4)
                   LET  ZY$=B$(10:13)
                   IF ZZ=0 THEN  GOTO 904 ELSE GOTO 905             
904                REM              
                   IF          ZX$="1111" THEN 
                      LET  STR=STR+1
                      GOTO 1000 
                   END IF
                   IF ZX=1 AND ZY$="1111" THEN 
                      LET  STR=STR+1
                      GOTO 1000
                   END IF
                   LET  NP =NP+1 
                   GOTO 1000 
905                REM  
                   IF          ZX$="1111" THEN 
                      LET  SFL=SFL+1
                      GOTO 1000 
                   END IF
                   IF ZX=1 AND ZY$="1111" THEN 
                      LET  RSF=RSF+1
                      GOTO 1000
                   END IF           
                   LET  FLS=FLS+1                   
1000                REM
                    LET  CNT1=CNT1+1
                    LET  CNT2=CNT2+1 
                    IF CNT2=100000 THEN 
                       LET  CNT2 = 0 
                       PRINT CNT1,TIME$                                       
                    END IF
                 NEXT O
              NEXT N
           NEXT M
        NEXT L
     NEXT K
     PRINT CNT1,TIME$                                       

     PRINT "Royal flush          =",RSF
     PRINT "Straight flush       =",SFL
     PRINT "Four of a kind       =",C4C
     PRINT "Full house           =",CFH
     PRINT "Flush                =",FLS
     PRINT "Straight             =",STR        
     PRINT "Three of a kind      =",C3C
     PRINT "Two pair             =",C2P
     PRINT "One pair             =",C1P
     PRINT "No pair              =",NP 
     PRINT "Total                =",CNT1    
  END
! コピー終わり

私のパソコンでは RUN して 1分 34秒後に 以下の OUT PUT がありました。

Royal flush          =   4 
Straight flush       =   36 
Four of a kind       =   624 
Full house           =   3744 
Flush                =   5108 
Straight             =   10200 
Three of a kind      =   54912 
Two pair             =   123552 
One pair             =   1098240 
No pair              =   1302540 
Total                =   2598960

斜方20・12面体 [ 3,4,5,4 ]2 Rhombicosidodecahedron

14[3,4,5,4] Excel ポーカーの確率 多面体 諸量



今度は 角度をグラフ用紙に表示するための整数比換算のエクセル画面です。
計算式は以下です。 後日投稿のリメイク版もあります。

[ 3,4,5,4 ] に限らず
プラトン多面体や アルキメデス多面体 など
18種類ある値の計算ができます。

1行目 E 列    =SMALL(D2:D81,1)

2行目 B 列    =TAN(RADIANS($G$2))*A2    

2行目 C 列    =ROUND( TAN(RADIANS($G$2))*A2,0)

2行目 D 列    =ABS(B2-C2)          

2行目 E 列    =IF(D2=$E$1,B2,"   ")

2行目 B 列から E列までを選択し セルの右下にポインタを合わせ
「+」を下方(81行まで)にドラッグする[オートフィル]を行います。

A列の 2行目に 250 
A列の 3行目に 249 を入れ 
250と249を選択し
81行目までオートフィルします。                      *2015年3月20日変更
2行目 G列に 12.9393184371119 を入れると
上に掲載の画面と同じ表示結果になります。
この数字は 斜方20・12面体 [ 3,4,5,4 ]の製作部品の仰角で
A列の250 から 171の範囲での計算で
1行目 E列の数値が 最も近似の角度表示をする整数比の 誤差です。
30行目 E列の数値の 222 と 51 がその答えだということです。
A列の数字を251行まで入れて 1までで計算すると
74 対 17.001 が一番誤差が少なく 次は 148 対 34.003 で
三番目に 222 対 51.005 なのですが
エクセルで 関数計算的な数値処理をする場合 煩雑なこともありますが
関数電卓で 数値処理をするより遥かに便利でした (多面体関連についてですが)。
今は フリーウェアーソフトの 十進BASIC を使っています。
http://hp.vector.co.jp/authors/VA008683/ を参照
このソフトがなかったら 多面体製作が趣味になっていなかったかも知れません。
そのほか ポーカーの役の確率計算を 順列や組み合わせを用いた論理計算ではなく
全数チェックで しかも短時間で調べることもできました。