|
「数学」小旅行 |
|
こういう問題を見ると、いつもプログラムを作りたくなるんです・・・
Risa/Asirを使いました。 /* まず、1から4までの数を並べる並べ方をすべて作ります。*/ A=newmat(24,4); X=0;C=0; for (I=1;I<=4;I++){ for (J=1;J<=4;J++){ if(I!=J){ for (K=1;K<=4;K++){ if((I!=K) && (J!=K)){ for (L=1;L<=4;L++){ if((I!=L) && (J!=L) && (K!=L)) {A[X][0]=I;A[X][1]=J;A[X][2]=K;A[X][3]=L;X=X+1;} }}}}}} /* 次に、上で作った並べ方から異なる3つを選んで行とし、行列を作り、各列に等しい成分がない場合の数をカウントします。 */ /* 行の組み合わせ3通りの差を作り、ひとつでも0があるとだめなので、すべての成分の積が0でないことで判定します。*/ B=newmat(3,4);B0=newmat(3,4); for (M=0;M<=23;M++){ for (N=0;N<=23;N++){ if(M!=N){ for (O=0;O<=23;O++){ if((M!=O) && (N!=O)){ B=mat(A[M],A[N],A[O]);B0=mat(A[N],A[O],A[M]);B0=B0-B; D=1; for(I=0;I<=2;I++) for(J=0;J<=3;J++) D=D*B0[I][J]; if(D!=0) C=C+1; }}}}} print(C); |
|
6月26日(木) 13:37:11
41995 |