排列組合的演算法問題,乙個排列組合的演算法問題

2022-07-19 01:57:00 字數 5335 閱讀 3421

1樓:飄渺世間天

貌似是求組合的,現寫了個比較簡單的,可得出任意n選m的組合:

#include

#include

void print(int* beg, int* end)void c(int n, int m)

else if(m > n)

return;

p = (int*)malloc(sizeof(int) * m);

for(i = 1; i <= m; ++i)p[i - 1] = i;

tb = p + m - 1;

do}while(*p != n - m + 1);

print(p, p + m);

free(p);

}int main()

2樓:

#include

void main()

;int a[4][3]=;

int temp[3] = ;

int i,j,k;

int count = 0;

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

} }for(i = 0;i < 4;i ++)}

3樓:匿名使用者

void combin(int s, int d[3])}}}int main(void)

, d[4][3];

combin(s, d);}

4樓:冼珈藍歆

來乙個簡單明瞭的:

#include

void fun(int a[3])

}void main()

printf("\n");}

5樓:可愛的小知道

a[4][3]可能存不下啊.

1 | 1 2 3

2 | 1 2 4

3 | 1 3 4

4 | 2 3 4

5 | 2 1 3

6 | 2 1 4

7 |......是嗎?

6樓:匿名使用者

不用數組裝的。

#include

#include

using namespace std;

main()

;for(i=0;i<4;i++),

b[4][3];

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

}for(i=0;i<4;i++)

cout<

return 0;}

乙個排列組合的問題

7樓:匿名使用者

有。諸如「

copyx在x之前」這樣的語bai句是一種限制條件。你只要在du全排列的基礎上zhi除以限制條件的排列就可以得到

dao你想要的答案。

比如abcdef中,你規定了3個字母的順序:a在b在c之前。那麼排列數就是6!/3!

很好理解:

在abcdef的全排列中,所有不是…a…b…c…這樣的情況都看成是和…a…b…c…重複的,你只要除以這個重複數就行了。而這個重複的個數就是這三個字母的全排列3!。

有多個限制條件的情況下,重複數相乘。比如你規定「a在b之前,c在d之前」,排列數就是6!/2!*2!

求乙個排列組合問題的演算法

乙個排列組合的程式設計問題

8樓:匿名使用者

其實去取那五個不連續的數相對簡單點,然後在從全部數字當中去除取出的那幾個數字,剩下的就是我們要存到檔案的了。

現在,問題就變成了:1~14中取5個不連續的數字。簡單點,我們拿1~8取3個不連續的數來舉例子:

1 3 5

1 3 6

1 3 7

1 3 8

1 4 6

1 4 7

1 4 8

1 5 7

1 5 8

1 6 8

2 4 6

2 4 7

2 4 8

2 5 7

2 5 8

2 6 8

3 5 7

3 5 8

3 6 8

4 6 8

發現規律了嘛?程式如下^_^

**用vb script寫的,可以直接存為html檔案在瀏覽器裡執行。vb和vbs語法一致,只是,輸出部分要改為檔案操作,忘冰兄弟就自己辛苦點,獨立完成餘下的部分吧。加油!

9樓:

dim a,b,c,d,e as integerfor a=1 to 6

for b=a+2 to 8

for c=b+2 to 10

for d=c+2 to 12

for e=d+2 to 14

//此行得到a,b,c,d,e為5個不連號的值 得到其餘的就很容易了next

next

next

next

next

10樓:匿名使用者

open for intput #1

close #!

open for output #!

close

11樓:芭蕉洞主

不列出情況會不會?

如果會,想法列出所有。

如果不會,先看資料學。

12樓:禹希初

14的5次方才不到76萬,因此你可以列舉所有可能的組合

每次從1~14中取5個數,如果這五個數中沒有任何一對相差為1,則將餘下的9個數輸出。

用vb實現上述演算法,應該1~2秒鐘就可得到結果。

13樓:

14樓:匿名使用者

private sub jiecheng(n as integer)k=1for i=1 to n

k=k*i

next i

end sub

private command1_click()s1=jiecheng(14)

s2=jiecheng(9)

s3=jiecheng(5)

va=s1/s2/s3/s3

form1.print va'此處你也可以用其他方法輸出end sub

'好好努力學習

排列組合問題計算公式,寫出個例子

15樓:匿名使用者

a(n,r)就是從n乘到n-r+1比如a(5,2)就是從5乘到5-2+1。n!(階乘)就是從n乘到1。

例題:五個人中選出兩個人當正副班長問有多少種選法就是a(5,2)。五個人站成一排照相問有多少種排法就是5!

也可以表示為a(5,5)都是一樣的! c(n,r)=a(n,r)/r!比如c(5,2)=a(5,2)/2!

例題:從五個人種選兩個人來當組長問有多少種選法!因為選出來不用排序了,所以就是c(5,2)了!

16樓:灬漆黑丶約

1.排列及計算公式

從n個不同元素中,任取m(m≤n)個元素按照一定的順序排成一列,叫做從n個不同元素中取出m個元素的乙個排列;從n個不同元素中取出m(m≤n)個元素的所有排列的個數,叫做從n個不同元素中取出m個元素的排列數,用符號p(n,m)表示.p(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!

(規定0!=1).

2.組合及計算公式

從n個不同元素中,任取m(m≤n)個元素並成一組,叫做從n個不同元素中取出m個元素的乙個組合;從n個不同元素中取出m(m≤n)個元素的所有組合的個數,叫做從n個不同元素中取出m個元素的組合數.用符號c(n,m)表示.

c(n,m)=p(n,m)/m!=n!/((n-m)!*m!);c(n,m)=c(n,n-m);

例如:把5本「不同」的書分給3個人,有幾種分法——"排列" ;把5本書分給3個人,有幾種分法——"組合"。

排列和順序有關,組合無關。

關於排列組合演算法的問題

17樓:匿名使用者

獻上歷史上最爛的演算法,不知道哪年能算出來!!

後面加了乙個新演算法

class thebadone

");system.out.println("counter="+counter);}}

}}}} }}

system.out.println(" final counter="+counter);}}

新演算法class ttt

system.out.println("counter="+counter);}}

算的結果是counter=1.1685135616e10c:\>

18樓:匿名使用者

可以這樣計算:

p(93,8)/8!

8!是8的階乘。

原理如下:

不妨設a

則此八個數的所有可能的排列個數是8!

但是這8!個排列中只有乙個是符合你非降需排列的要求的。

即abcdefgh,其他排列均不符合要求。

也就是說,在每八個數字的全排列中只取乙個。

所以,首先用p(93,8)求出93個數中任取八個的全排列的總數,而後再除以8!就可以了。

其實就是c(93,8)

關於排列組合的一些演算法程式設計問題 30

19樓:匿名使用者

要是有樣例輸入,樣例輸出的話,可以給你**,現在我只能給你講思路。。

當我從中選出5個(或者更多<=10)的話,怎樣將所有的結果顯示出來?

明顯是用遞迴。用其中乙個引數作為遞迴層數,或者稱之已經選擇個數。等於0或者等於選擇個數時候返回、輸出。

比如我選1,3,5,7,9。 如何程式設計 把10種結果c(5,3)全部顯示出來?

第一種方案是用全域性變數的陣列記錄,一維陣列二維陣列均可。

第二種方案是最為遞迴的傳遞引數,遞迴邊界的時候輸出。

另外如何才能剔除掉我選擇的結果?

剔除?沒理解你這句話的含義。初始化?還是什麼。如果遞迴,新的資料會覆蓋原來的資料啊~

所有資料都需要計算機輸入的。如何實現?

。。。。。。請給我樣例輸出和樣例輸入吧,不要讓我猜你給的題目的含義啊~~~~~

20樓:風雨稻香

我能想到的是,可以寫個三層迴圈,就可以把所有的結果找出來,並儲存在乙個列表中,之後再把你的選擇的按相同方法找出來,在把兩者一一比較,相同的在一列表中刪除。什麼軟體都可以吧,matlab或者python或者其他都行

數學排列組合的問題關於數學排列組合的問題

解 主要取決於哪個去選哪個 你們老師說的這句話很關鍵!我的經驗是,做這種題就是要抓住去選的那一方有幾種選擇。就拿你說的3和4 來舉例子吧。如果是把3個球放進4個盒子。那麼是球去選盒子,每個球都可以選4個盒子,第乙個球從四個盒子中選乙個,4種選法,第二個球再從4個盒子中選乙個,也是4種選法,第三個球也...

排列組合問題

接 zhaoyi 628 的回答。設來 an 是源n個人的坐法 顯然 a2 1 假設 已知 a2,a3,a n 1 那麼bai n個人中n 1人對號入du座等於zhin人對號入座,是1種坐dao法。k人對號入座有 a n k c n,k 種坐法 k 1,2,n 2 故 an n 1 a n 1 c ...

數學排列組合(急),數學排列組合問題(急,加分)

首先把題目簡化,我們把題目變成有4個人,乙個字母a 代表5個連續空位,為了是把5個連續空位看成乙個整體 和乙個字母b 代表乙個空位 這樣題目就可以理解為有4個人站成一排,把a b往這4個人站成的一排裡面插空 每2人之間看成乙個空,排頭或者對尾也是空,那麼4個人構成5個空,a b往這5個空裡插,a b...