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

請問這個問題該如何解比較好呢? (排列組合的問題)

尚未結案
greenbug
一般會員


發表:2
回覆:6
積分:1
註冊:2003-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-26 16:07:45 IP:211.21.xxx.xxx 未訂閱
請教各位大大: 有三個變項 變項一:1,2,3 變項二:A,B 變項三:x,y 要列出這三個變項的所有組合 1:1,A,x 2:1,A,y 3:1,B,x 4:1,B,y 5:2,A,x ........ 用三個 for loop 可以解決上述的問題, 但頭大的來了, 上述的變項是變動, 而且變項中的值也是變動的, 也就是說: 可能是三個變項, 也可能是五個變項, 而且變項中的可能值也不固定 該如何解最好呢? 謝謝!
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-27 00:32:06 IP:211.76.xxx.xxx 未訂閱
用if去判斷要不要loop 應該可以
------
KUSO 無處不在
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-27 03:03:13 IP:203.204.xxx.xxx 未訂閱
greenbug 你好    試試以下程式 新開一個Form  , 放個ListBox,放個TBitbtn,然後在其OnClick事作中輸入下列程式碼
Type   // 型態宣告
  StrArray = Array Of String ;  // 好像有現成的
  IntArray = Array Of Integer ; // 先用吧,找到再說     procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  Vars : Array Of StrArray ;
  V1,V2,V3 : StrArray ;
  Cnt,limit : IntArray ;
  i:Integer;
begin
  // 準備動作(三個變項)
  SetLength(V1,3);
  SetLength(V2,3);
  SetLength(V3,2);
  V1[0] := 'A' ;  V1[1] := 'B' ;  V1[2] := 'C' ;
  V2[0] := '1' ;  V2[1] := '2' ;  V2[2] := '3' ;
  V3[0] := 'x' ;  V3[1] := 'y' ;
  SetLength(Vars,3);  // 幾個變數 3
  // 組成 一個陣列的陣列
  Vars[0] := V1 ;
  Vars[1] := V2 ;
  Vars[2] := V3 ;      // 開始處理
  SetLength(Cnt,Length(Vars));
  For i:=Low(Cnt) To High(Cnt) Do Begin
    Cnt[i] := 0 ;
  End;
  ListBox1.Items.Clear;
  While True Do Begin
    ListBox1.Items.Add(Vars[0][Cnt[0]] ',' Vars[1][Cnt[1]] ',' Vars[2][Cnt[2]]);
    For i:=High(Cnt) DownTo 0 Do Begin
      Inc(Cnt[i]);
      If Cnt[i] <= High(Vars[i]) Then
        Break;
      Cnt[i] := 0 ;
    End;
    If i= -1 Then  // 完成了 請看LisiBox的內容
      Break;
  End;    end;
祝好運.......
greenbug
一般會員


發表:2
回覆:6
積分:1
註冊:2003-12-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-03 10:46:25 IP:211.21.xxx.xxx 未訂閱
Dear Chance, 很感謝您的指教! 您的方式是可行的! 謝謝您了!
greenbug
一般會員


發表:2
回覆:6
積分:1
註冊:2003-12-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-03 10:47:49 IP:211.21.xxx.xxx 未訂閱
Dear Chance,    很感謝您的指教! 您的方式是可行的! 謝謝您了!    < >< >
系統時間:2024-05-07 9:59:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!