codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include<stdio.h> int tr[][6]={{0,0,1,1,2,2}, /* 空空空 時の サイコロの目から、部屋番号への 変換table */ {1,2,1,1,2,2}, /* 満空空 以下同様 */ {0,0,0,2,2,2}, /* 空満空 */ {2,2,2,2,2,2}, /* 満満空 */ {0,0,1,1,0,1}, /* 空空満 */ {1,1,1,1,1,1}, /* 満空満 */ {0,0,0,0,0,0}}; /* 空満満 */ int l[7],data[6][6]; void f(int depth){ int i,j,k; if(depth<6){ j = (l[1]!=-1) + 2*(l[3]!=-1) + 4*(l[5]!=-1); /* 部屋の空満状況を判断 */ for(i=0;i<6;i++){ k=2*tr[j][i]; if(l[k]!=-1)k++; l[k]=depth; f(depth+1); l[k]=-1; } }else{ data[l[0]][l[1]]++; data[l[2]][l[3]]++; data[l[4]][l[5]]++; } } int main(){ for(int i=0;i<7;i++)l[i]=-1; f(0); for(int i=0;i<6;i++){for(int j=0;j<6;j++)printf("%d ",data[i][j]);printf("\n");}printf("\n"); for(int i=0;i<6;i++){for(int j=0;j<6;j++)printf("%12.10f ",(double)data[i][j]/216.0/216.0);printf("\n");} return 0; }
Private
[
?
]
Run code
Submit