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