線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1178
推到 Plurk!
推到 Facebook!

數學計算式 取得所有排列組合

尚未結案
newbie
初階會員


發表:81
回覆:45
積分:25
註冊:2002-11-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-11 13:18:36 IP:203.69.xxx.xxx 未訂閱
大家好,    請問是否有現成的 數學函式 可以將 類似樂透一樣從 M 個字元 取出 N 個的所有情形(含排列這樣)    還是必須自己寫哩?    謝謝    
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-11 15:17:27 IP:61.63.xxx.xxx 未訂閱
引言: 大家好, 請問是否有現成的 數學函式 可以將 類似樂透一樣從 M 個字元 取出 N 個的所有情形(含排列這樣) 還是必須自己寫哩? 謝謝 < face="Verdana, Arial, Helvetica"> newbie你好: 剛剛小查了一下: 要列舉所有的排列情況的話,查一下 >! 要是只要求數目是多少的話,比如 >! 小小方向< >!
zilch
中階會員


發表:5
回覆:87
積分:78
註冊:2002-09-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-11 16:19:34 IP:218.166.xxx.xxx 未訂閱
留在電腦中的一段舊程式,忘了在那看到的  產生n取6的所有組合 #include  #include #define MAX 14 using namespace std; int S[MAX],k; bool mask[MAX]; void init(){ /* 初始化用來產生組合(Combination)的 Boolean Array * 要產生k 取 6, 所以前6個( 0~5)是 false, 後面(6~k) 是true */ memset(mask,1,sizeof(bool)*MAX); memset(mask,0,sizeof(bool)*6); scanf("%d",&k); if(k==0) exit(0); for(int i=0;i #include #include using namespace std; int main(int argc,char **argv){ ostream_iterator it(cout); int data[5]={1,2,3,4,5}; bool mask[5]={false,false,true,true,true}; // 取所有5個mask元素的排列(字典順序) do{ for(int i=0;i<5;i ){ if(mask[i]) printf("%d ",data[i]); } printf("\n"); }while(next_permutation(mask,mask 5)); }
系統時間:2024-06-28 4:49:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!