當前位置:首頁 » 編程軟體 » 組合的編程

組合的編程

發布時間: 2022-05-22 02:31:22

c語言編程排列組合

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';//這個不用說啦。 printf("\n%d 位密碼,每個密碼有%d個選擇的話,共有:%d個組合。\n",n,len,*i);return 0;}
以上回答你滿意么?

② 排列組合C語言編程思路

定義一個結構體一維數組,每個下標表示不同的盒子
{int A;
int B;
int C;
int D;
}
,先窮舉A的可能性
再依次窮舉B、C、D的可能性
最後輸出

③ 計算組合數 如何編程

如果是指從m個不同元素中取出n(n≤m)個元素的所有組合的個數 的話
#include"stdio.h"
int fac(int n) /*階乘函數*/
{
int s,i;
s=1;
for(i=1;i<=n;i++)
{
s*=i;
}
return(s);
}

main()
{
int n,m,c;
scanf("%d %d",&m,&n);
c=fac(m)/(fac(n)*fac(m-n));
printf("%d\n",c);
}

用的是C語言

④ 怎麼編程實現排列組合

publicstaticStringreverse1(Stringstr)
{
returnnewStringBuffer(str).reverse().toString();
}
2.最常用的方法:
publicstaticStringreverse3(Strings)
{
char[]array=s.toCharArray();
Stringreverse="";//注意這是空串,不是null
for(inti=array.length-1;i>=0;i--)
reverse+=array[i];
returnreverse;
}
3.常用方法的變形:
publicstaticStringreverse2(Strings)
{
intlength=s.length();
Stringreverse="";//注意這是空串,不是null
for(inti=0;i<length;i++)
reverse=s.charAt(i)+reverse;//在字元串前面連接,而非常見的後面
returnreverse;
}
4.C語言中常用的方法:
publicstaticStringreverse5(Stringorig)
{
char[]s=orig.toCharArray();
intn=s.length-1;
inthalfLength=n/2;
for(inti=0;i<=halfLength;i++){
chartemp=s[i];
s[i]=s[n-i];
s[n-i]=temp;
}
returnnewString(s);//知道char數組和String相互轉化
}

⑤ 排列組合編程問題

這個程序是求n的月之數,程序直接給出答案是1<<(n-1))+(n-1)*(1<<(n-2))。
C語言里1<<x等於2的x次方,所以這個答案很容易看出來其實是2^(n-1)+(n-1)*2^(n-2),^是乘方運算。
下面給出上式的推導過程:
因為最高的一位必然為1,所以位數為n的二進制數的個數為2^(n-1)個(這是很基本的,你要是連這個都不知道為什麼我就沒啥好說了)。
一、只考慮最高位,所有的數都是1,所以一共有2^(n-1)個1。
二、不考慮最高位,一共有(n-2)位。以最低位為例,所有數中,有一半最低位是0,另一半最低位是1,所以只考慮最低位時,一共有2^(n-1) / 2 = 2^(n-2)個1。同理,只考慮除了最高位的剩下的n-2位中的任意一位時,所有數中一共有2^(n-2)個1。這樣加起來有(n-2) * 2^(n-2)個1。

綜合一二可知,n的月之數為2^(n-1)+(n-1)*2^(n-2)。即1<<(n-1))+(n-1)*(1<<(n-2))。

⑥ 排列組合編程

我承認我錯了,是120種
我這種方法還算巧妙吧:

#include <stdio.h>

int main()
{
int i,j,k;
int sum = 0;
for(i = 9; i>=2;i--)
for(j = i-1; j >=1; j--)
for(k = j-1; k>=0;k--)
printf("%d%d%d\n",i,j,k);
return 1;
}

文本,你去抄下書就搞定了

⑦ 用C編程排列組合

#include <stdio.h>
#define MAX_NUM 26
char ach15Char[6] ="12345"; // 一定要有序的!
int comb[MAX_NUM];
void combination(int m, int n)
{
int i, j;
for (i = m; i >= n; i--)
{
comb[n] = ach15Char[i-1]; /* 選擇當前的「頭」元素 */
if (n > 1)
{
/* 進入下一次更小的組合問題 */
combination( i - 1, n - 1);
}
else
{
/* 滿了需要的組合數,輸出 */
for (j = comb[0]; j > 0; j--)
{
printf("%c", comb[j]);
}
printf("\t");
}
}
return;
}

int main(int argc, char *argv[])
{
comb[0] = 3;
combination( 5, comb[0]); /* C(15, 7) */
return 0;
}

⑧ 編程中排列組合的問題(4個數字中(數字范圍0-9),每3個為一組,允許數字重復使用,求所有組合)

從4個數字中取3個數,且能重復選用。所以每取一位都有4種選擇,共有4³=64個數

⑨ 一個排列組合的編程問題

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

現在,問題就變成了: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

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

<SCRIPT LANGUAGE="VBS">
'''''''''''''''''''''''''
Sub q (n, max_n, v, max_v)
For i=v To max_v
b(n)=i
If n<max_n Then
call q (n+1, max_n, i+2, max_v)
Else
For j=1 To max_v
ary(j)=j
Next
For j=1 To max_n
ary(b(j))=0
Next
For j=1 To max_v
If ary(j)>0 Then document.write (cstr(ary(j))+" ")
Next
document.write ("<br>")
c=c+1
End If
Next
end Sub

'''''''''''''''''''''''''
Dim b(5)
Dim ary(14)
call q (1,5,1,14)
</SCRIPT>

代碼用VB Script寫的,可以直接存為html文件在瀏覽器里執行。vb和vbs語法一致,只是,輸出部分要改為文件操作,忘冰兄弟就自己辛苦點,獨立完成餘下的部分吧。

加油!

⑩ C語言中組合公式的編程

int function(int n,int m)
{
int i, ret = 1;

for(i=0;i<m;i++)
ret *= (n-i);
return ret;
}

void main(void)
{
int n = 15, m =5;
int ret;

ret = function(15,5) / function(5,5);
printf("%d\n",ret);
}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:705
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:968
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:676
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:828
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:737
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1076
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:308
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:188
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:875
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:829