• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:トランプの組合せについて(その2))

トランプの組合せについて(その2)

このQ&Aのポイント
  • トランプの組合せの数え上げについて質問します。
  • トランプはジョーカーのない52枚を使用し、無作為に8枚を抽出します。
  • 隣接した数字の連続(ストレート)の長さについて質問します。求める組合せの長さはそれぞれ8、7、6、5、4、3、2、1です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

実は、前回の質問の際に「数え上げプログラム」を組み上げて、コンピュータに数えさせてしまいました。 今回、枚数を8枚に変えて、同じプログラムで数えてみました。 バラ=10233457 2連=272532949 3連=282830496 4連=124075328 5連=43789824 6連=14177280 7連=4046848 8連=851968 合計=752538150 数え上げた数=752538150 4連が2つ=31933952 3連が2つ=94488544 ----C言語で書いたプログラム----ここから---- #include<stdio.h> void main() { long c1,c2,c3,c4,c5,c6,c7,c8,i1,i2,ml,a,b,c,d,e,f1,f2; long ans[8]={0,0,0,0,0,0,0,0}; long modl[16]; d=f1=f2=0; for (c1=0;c1<52;c1++) { for (c2=c1+1;c2<52;c2++) { for (c3=c2+1;c3<52;c3++) { for (c4=c3+1;c4<52;c4++) { for (c5=c4+1;c5<52;c5++) { for (c6=c5+1;c6<52;c6++) { for (c7=c6+1;c7<52;c7++) { for (c8=c7+1;c8<52;c8++) { d++; modl[0]=c1 % 13; modl[1]=c2 % 13; modl[2]=c3 % 13; modl[3]=c4 % 13; modl[4]=c5 % 13; modl[5]=c6 % 13; modl[6]=c7 % 13; modl[7]=c8 % 13; for (i1=0;i1<8;i1++) { modl[i1+8]=modl[i1]+13; } for (i1=0;i1<15;i1++) { for (i2=i1+1;i2<16;i2++) { if (modl[i1]>modl[i2]) { ml=modl[i1]; modl[i1]=modl[i2]; modl[i2]=ml; } } } c=7; if(modl[7]==12) { c=15; } a=0,b=0,e=0; for (i1=0;i1<c;i1++) { if (modl[i1]+1==modl[i1+1]) { b++; } else { e=a; if (a<b) { a=b; } b=0; } } if (a<b) { a=b; } if ((e==4)&&(a==4)) { f1++; } if ((e==3)&&(a==3)) { f2++; } ans[a]++; } } } } } } for (i1=0;i1<8;i1++) { printf("%d ",ans[i1]); } printf("%d %d",f1,f2); printf("\r"); } } printf("\n"); a=ans[0]; printf("バラ=%d\n",ans[0]); for (i1=1;i1<8;i1++) { a+=ans[i1]; printf("%d連=%d\n",i1+1,ans[i1]); } printf("合計=%d\n",a); printf("数え上げた数=%d\n",d); printf("4連が2つ=%d\n3連が2つ=%d\n",f1,f2); } ----ここまで----

s_liner
質問者

お礼

いやー、プログラム組める方って素敵です。ありがとうございます。

関連するQ&A