1樓:匿名使用者
lz的意思是不是有一些數,求全部的組合序列是吧我這裡有個程式你可以先拿去看看
#include
#include
#define n 23
#define resault 28350.2#define tt pow(2,(n)) //8388608void main()
;double sum;
char *s=new char[n+1];
cin>>j;
for(dec=j;dec=0)
*(s+i)=c+48;
else
*(s+i)=c+55;
++i;
}for(;i>i;
}使用方式在先在
#define n 23
#define resault 28350.2 這兩個地方分別替換成自己的數的個數和想要組合的和
然後在ms陣列中替換成自己的所有的數
我這個程式是用不同的組合求和的,我不知道lz想拿組合做什麼,如果也是求和的話那這個可以,如果單純想輸出所有的組合的話告訴我一下,程式得稍微改進一下
另外還有個這個演算法思路的語句改進版,速度會快一點,需要的話也告訴我一下
2樓:匿名使用者
組合公式呀, 你要不要用 遞迴 來做這個事情呢?
比如 c(m,n)化簡為比較低的c(m-1,n-1)+.....這樣來做呢?
我想這樣肯定是足夠高效的,唯一就是迭代有點多,不過全部是加法。
另外你也可以用for迴圈做吧。直接一個個的加,用他的實際意義來做,看有多少種情況,全加起來,應該也很快。
c語言組合演算法
3樓:匿名使用者
下面是完整的從n個數裡選出m個不同的數的組合數程式。所用字元數已經小於90.
double a;
main(n,m)
4樓:你不說我沒說過
排列組合的公式數學裡有
組合的公式是ncm=n!/(m!(n-m)!)但是排列組合的計算式子快捷方法不是這麼做的n*(n-1)……*(n-m+1)/m*(m-1)……*1設兩個迴圈
#include
void main
for(i=m;i>0;i--)
c=a/b;}
5樓:
//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"
void main(void)
求高手看資料結構這幾個演算法怎麼弄。是c++,不是c語言!!!做好,馬上給80分!
6樓:匿名使用者
1. int getdepthx(binarytree t,elemtype x)
return 0;
}2.tnode preorderfindk(binarytree t,int k,int i)//呼叫時i初始化為0,k為所需查詢的
//返回值為所查詢的結點,然後訪問左右孩子就可以了上面2個我測試都通過了
後面2個需要用到棧,比較麻煩,你不懂的可以問我。嚴蔚敏那本的書上大部分**我都實現了,你想要我可以給你
怎樣用c++實現 組合數 的計算,例如我要計算 ncm
7樓:翔子菊子
你這個問題類似於解決超長數做四則運算的問題。比如:
111111111111111111111....111111111111111111111111111+
1111111111111111111111.....11111111111111111111111111
方法就是,c++的話,最好使用stl容器,比如vector或者list。定義3個容易,2個用於分別儲存加和被加,乘數或者被乘數,第三個容器用於儲存計算的結果,容器的每個物件儲存的是超長數的一位。每計算一位,就把結果放到結果容器中,保留進位,做下一步計算。
把上邊這個超長數相成的演算法實現完畢(也可以在網上找現成的)後,你的程式主要完成對於階乘的拆分,用while(n != 0)為迴圈條件,迴圈體就是提供n和上次計算結果給上邊的演算法繼續計算。
大概思路就這樣
一個數學公式c++程式設計
8樓:匿名使用者
#include
#include
using namespace std;
int main()
cout<< sum << endl;
return 0;}
給定求組合數公式為:c(n,m)=m!/n!(m-n)!,編一程式,輸入m和n的值 ,求c(n,m)的值 5
9樓:庫魯滋·韋伯
#include
int fabricate(int m,int n);
int multi(int m,int n);
void main()
else
printf("錯誤!重新輸入,輸入m:");}}int fabricate(int m,int n)int multi(int m,int n)
10樓:夜中月下
#include
using namespace std;
int main()
int multi(int m,int n)
請教c++ 排列組合的演算法
11樓:匿名使用者
要求說詳細點。都不知道你要得出的結果是什麼?得到幾種排列方式?還是把所有的排列組合情況都輸出?
c語言程式設計:按所給的公式計算組合數並輸出結果:cmn(m在上n在下)=n!/[(n-m)!m!]
12樓:眼鏡控控卡咩
我理解是這樣的輸入輸出,如果是這樣的輸入輸出的話,**如下:
#include
#define n 34
main()
>=0)
return 0;}
13樓:匿名使用者
#include
int main()
for(i=1;i<=n;i++)
printf("%d",sum);}
c++求3個數列排列組合演算法
14樓:匿名使用者
我是軟體專業初學者,自己寫出來的就一個有點用的:可以利用楊輝三角公式,也是組合公式:c(i,j)=c(i-1,j-1)+c(i-1,j);再用大資料陣列儲存,因為20以後資料已經變的很大,所以我用了double,這裡有我自己寫的一個函式可以參考下,不知道有沒有更好的方法
double c[n][n];
void cc()
for (int i=2;i c[i][j]=c[i-1][j]+c[i-1][j-1]; }//小數字! 這個是c++的 15樓:天蠍小魚兒 數列是以正整數集為定義域的函式,是一列有序的數。數列中的每一個數都叫做這個數列的項.排在第一位的數稱為這個數列的第一項,排在第二位的數稱為這個數列的第二項,...... 排在弟n位的數稱為這個數列的第n項。 16樓:布什不死 沒看明白你想幹啥,什麼3個數列組合演算法 17樓:匿名使用者 搞笑,給5個懸賞分就給你這麼大一個演算法? f m 溢位了 就算 f m 沒溢位,由於你的變數都宣告是整數,則1 極大值等於 0。 因為n的階乘是1,m的階乘是一個很大的數,而且n m是1 20 19,是一個負數,你帶入階乘函式f,是一次都不會執行的,直接返回1,那麼你的f n f m f n m 這個式子就是 1 很大的數 1,最終的得數也... include using namespace std void cmb char a,int n,int m,int b,const int m int i for i n i m i b m 1 i 1 if m 1 cmb a,i 1,m 1,b,m else int j for j m 1 ... 首先c語言要熟悉,然後去圖書館借一本加密解密的書,要裡面有c語言des實現 的 這種書是有的,我看到過 先對加密解密的歷史及發展現狀進行介紹,然後著重對des加密的發展歷史及原理進行闡述 以上內容要多借幾本相關書綜合一下用自己的語言表達出來 然後對des的演算法寫個程式 可以利用書裡面的程式 然後執...C語言為什麼這樣求組合數有問題
c語言,如何求n個元素的m個組合
基於C語言的DES加密演算法的實現要怎麼寫啊