子集合 |
尚未結案
|
physical
一般會員 發表:1 回覆:0 積分:0 註冊:2004-05-10 發送簡訊給我 |
|
dan59314
中階會員 發表:121 回覆:107 積分:86 註冊:2002-08-16 發送簡訊給我 |
目前只寫了 Delphi 版本,請轉成 BCB。
P(M,N) 從 M 個內取 N 個組合。 您可以使用下列函示 GetN(N:integer); for i:=1 to N do GetN(i); 就可以取得所有子集合。 :) // 在 M 個元件內取 N 個並加以排列,可重複選取 //SetAry[0..M-1]={1,2,3,4...M}; 取 N 個,可能組合有 M^N 種 = round(Exp(Ln(M)*N))。 CombAry[M^N]; curID:integer; curID:=0; procedure GetN(N:integer); var i,j,k,subCombination:byte; begin if (N>1) then begin subCombination:=1; for j:=1 to N-1 do subCombination:=subCombination*M; //其下階 所有 for loop 的組合總數 for i:=0 To M-1 do begin for k:=0 to SubCombination-1 do begin CombAry[curID k]=SetAry[i]; end; GetN(N-1); //遞減 end; end else begin for i:=0 To M-1 do begin CombAry[curID]=SetAry[i]; inc(curID); end; exit; end; end;發表人 - fy 於 2004/05/10 17:55:42 發表人 - taishyang 於 2004/05/10 18:57:26 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |