1、求排列組合沒有簡單方法。方法只有一個(gè),枚舉。有幾個(gè)位置需要列舉,就需要幾個(gè)循環(huán)。如果循環(huán)數(shù)量太多,可以用函數(shù)遞歸來枚舉。

創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)聯(lián)通服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
2、例程:
#includestdio.h
int?main(){
int?a[4]={1,3,4,7};????????//第一個(gè)位置
int?b[4]={2,5,8,10};????//第二個(gè)位置
int?c[4]={6,9,11,12};????//第三個(gè)位置
int?i,j,k;
for(i=0;i4;i++)
for(j=0;j4;j++)
for(k=0;k4;k++)
printf("%d?%d?%d\n,",a[i],b[j],c[k]);//輸出一種排列
getch();
return?0;
}
#includestdio.h
#includestring.h
void
Show(int
n,int
len
,char
str[],
char
p[],int
*i)
{
/*函數(shù)功能說明: 密碼窮舉法
遞歸算法
參數(shù)說明:
len
密碼可選元素的個(gè)數(shù),實(shí)際等于
strlen(str);
n
密碼位數(shù)。
STR[]密碼表。
*p
密碼排列組合的臨時(shí)存檔
*/
int
a;
n--;
for(a=0;
a
len;
a++)
{
p[n]=str[a];
if(n==0)printf("%d:%s
",(*i)++,p);
if(n0)Show(n,len
,
str,p,i);
}
} /*驅(qū)動程序
用于測試*/
int
main(void)
{
char
str[]="abcdef";//密碼表
可選元素集合可根據(jù)選擇修改
int
n=4; //密碼位數(shù),根據(jù)具體應(yīng)用而定。
int
len=strlen(str);//用于密碼元素集合計(jì)數(shù)。
char
p[20]; //存放排列組合的密碼,用于輸出。
int
num=0;//存放統(tǒng)計(jì)個(gè)數(shù)的整數(shù)值,
int
*i=num;//計(jì)數(shù)器
地址。
p[n]='\0';//這個(gè)不用說啦。 Show(
n,len
,str,
p
,i);
printf("\n%d
位密碼,每個(gè)密碼有%d個(gè)選擇的話,共有:%d個(gè)組合。\n",n,len,*i); return
0;
}
#includestdio.h
int?com(int?m,int?n)//m中取n個(gè)
{
int?i,j,sum=1;
for?(i=m,j=0;jn;j++,i--)
{
sum=sum*i/(j+1);
}
return?sum;
}
int?main()
{
int?i;
i=com(5,3);
printf("%d",i);
return?0;
}
分享文章:c語言中排列組合函數(shù),c語言實(shí)現(xiàn)排列組合算法問題
標(biāo)題網(wǎng)址:http://chinadenli.net/article12/dseecdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航、動態(tài)網(wǎng)站、定制網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)