C語言解決排列組合問題請高手指教

2021-07-04 06:37:04 字數 1397 閱讀 1085

1樓:前縈懷

#include

/*陣列a[10]為固定值,一共10個數字,每個元素的值分別為1,1,1,2,2,4,5,3,4,2,

另有三個不相關的變數值2,3,4 ,這三個數字以任意的排列組合加到陣列a的某一個

或幾個元素中(可以全部加到a[1]上,也可以加到a[2],a[3],a[8]上 隨意加的),

這三個變數只能加一次,得到一個新的陣列b,當b組中有3個數值大於6時,輸出該陣列,

求出所有的滿足這個條件的陣列b。

*/int main()

;int b[10];

int i,j,k,t,count;

int x2=2,x3=3,x4=4;

for(i=0;i<10;i++)

if(count>=3)}}

}//3個數加到一個有10個元素的陣列中的所有可能

return 0;}

2樓:匿名使用者

這三個變數每個都有10種選擇,所有三重迴圈i, j, k,每個迴圈從0到9(當然,如果你要考慮可擴充套件性,比如4個變數,5個變數等等,也可以寫成遞迴),迴圈最內部把a[i],a[j],a[k]分別加上2,3,4,然後判斷結果是否滿足某個條件,滿足則列印,否則回滾以上操作(也即a[i],a[j],a[k]分別減去2,3,4),繼續下一次迴圈

請高手指教,高中數學排列組合問題求解釋?小球放進盒子裡,共兩個題目

3樓:匿名使用者

第一題中你重複了,假設你選出的是a球,最後它和b球同在1號箱子裡;若你選出的是b球,它和a球還有可能同時出現在1號箱子裡,這是一種情況,可是你算了2次,所以你最後的結果要除以2才對。

第二題中還是重複的問題,在5c1*4c1*3c3中,你先在5個球中選出a球,再在4個球中選出b球;也可以先在5個球中選出b球,再選出a球,這是相同的分法,可是卻被看成2種分法,所以要除以2。對於5c1*4c2*2c2也是同樣的情況,你先選出的a、b個球,剩下c、d個球,你也可以先選出c、d2個球,剩下a、b球,這是同一種情況.,所以需要除以2。

4樓:匿名使用者

假設哲個球是12345,當從5箇中選1時,其他按順序放在4個盒子裡,12就在一個盒子裡,當你選2時,其他四方個還按順序,那就是21在一個盒子裡有重複。

和上題一樣,第一次選1,第二次選2剩下3個一起,和第一次選2第二次選1剩下3個一起,重複,所以除2a2

5樓:蕭雪海

兩道題都是你的順序出現了問題。第一題你的答案是標準答案的2倍就是因為你沒除以2a2,所以第二題除以2a2你也沒懂。是這樣的,比如有兩個球,你把一號先放進去再放二號,和你把二號先放進去再放一號結果都是一樣的,但是次序不一樣,這就多了一種方法,要把這種方法除去,就除以2a2,也就是除以2,這樣你明白了嗎

排列組合問題,排列組合問題

甲直接擊殺比較容易,就是說要在9次內擊殺,對於甲要麼殺死,要麼殺不死。反過來求甲九次不能擊殺的概率,說明九次都已經打完了,而且沒死。9次打掉9x2700 24300,剩下35700,至少要在9次裡面暴擊5次8900,才殺死。那就讓它暴擊0,1,2,3,4次,概率分別是 c 9,0 0.4的0次方0....

排列組合問題,排列組合問題

乘法原理它屬於分步範疇,要求每步的工作都是獨立的才可以,如果前者影響到後者的決定就不能純粹這樣算了。像你這裡舉的幾個例子都是可以用乘法原理來處理的。就是假設一個問題的解決可以分為幾步,每步解決的方案不依賴於其他步方法,第一步有a1個解決方案,第n步有an個解決方案,則完全解決這個問題的一整套方案可以...

排列組合的問題,排列組合問題

典型的插空法 結果 a 14 14 a 8 8 a 6 9 思路 14人全排列 6個女生互不相鄰的排列數。14人全排列 a 14 14 6個女生互不相鄰的排列數 先把8個男生全排列a 8 8 再把6個女生插在8個男生形成的9個空中a 6 9 即 a 14 14 a 8 8 a 6 9 排列組合是組合...