精華區beta Programming 關於我們 聯絡資訊
小新 <masscadi.bbs@bbs.ntu.edu.tw> 次寫入到主題 <000j6f$tyR@bbs.ntu.edu.tw>... > 如何寫一程式如何寫一程式 > 如何寫一程式將一組合問題將C(10,3)的 > 所有120種情況存於陣列A[120][10]中? > > 例如,第1種情況為1110000000 > 2 1011000000 > 3 1001100000...等等120種情況 > 存於陣列A[120][10]中 > 或是從哪本書可以找到此演算法?謝謝! > > > int cnt, i,j,k; cnt = 0; memset(a,0,sizeof(a)); for(i=0;i<8;i++) { for(j=i+1;j<9;j++) { for(k=j+1;k<10;k++) { a[cnt][i]=1; a[cnt][j]=1; a[cnt][k]=1; cnt++; } } } Loop中個數驗算: 8 i 8 cnt=Sigma(Sigma(k)) = Sigma((i^2+i)/2) i=1 j=1 i=1 = (n*(n+1)*(2*n+1)/6+n*(n+1)/2)/2 , n=8 = (8*9*17/6 + 8*9/2)/2 = 2*3*17 + 2*9 = 102+18 = 120 -- 市隱 有些東西, 書本不提是因為太過簡單...