全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6768
推到 Plurk!
推到 Facebook!

[C++]6個亂數互不重複

尚未結案
brittany_1986813
一般會員


發表:1
回覆:2
積分:0
註冊:2004-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-27 19:34:02 IP:218.170.xxx.xxx 未訂閱
請問一下: 運用下列程式碼跑出六個亂數,有時都會跑出1,2,3,5,4,3,要如何才能使六個亂數都互不重複呢?是要一一比較嗎? sort(); { int x,i; long temptime; srand(time(&temptime)); printf("樂透:"); printf("%d ",RLT[i]); } 煩請那位前輩指教!!謝謝…
dllee
站務副站長


發表:319
回覆:2516
積分:1710
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-29 08:16:45 IP:211.76.xxx.xxx 未訂閱
以前我看過洗牌的程式,洗法有兩種, 1. 抽牌法:先把牌排好放在陣列中,以亂數產生 index 抽出剩餘的牌,直到抽完所有的牌。此法不用比對,比較麻煩的是要維護牌的陣列。 2. 牌交換:同樣先把牌排好放在陣列中,以亂數產生 2 個 index,將那兩張牌交換,即 index 所指的數值交換。或以亂數產生 1 個 index,由第一張依序與亂數 index 交換。 這兩種方法都不需要與已產生出來的亂數做比對,比較實用一些。    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://blog.yam.com/dllee/
brittany_1986813
一般會員


發表:1
回覆:2
積分:0
註冊:2004-03-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-02 23:56:23 IP:218.170.xxx.xxx 未訂閱
??笨笨,不懂不懂…>"< dllee~可以麻煩您再說清楚一點嗎? 您所說的觀念我懂,但要怎麼做呢? 要怎麼抽呀?課本上找不到你所說的洗牌法。 可以麻煩你寫程式碼舉例說明嗎? 謝謝!!
dllee
站務副站長


發表:319
回覆:2516
積分:1710
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-04 09:35:39 IP:203.204.xxx.xxx 未訂閱
{
  // 洗牌法之牌交換
  AnsiString Result;
  int iArray[6]={1,2,3,4,5,6};
  int i,j,k,temp;
  for(k=0;k<100;k  ) // 交換 100 次
  {
    i=random(6);
    j=random(6);
    temp=iArray[i];
    iArray[i]=iArray[j];
    iArray[j]=temp;
  }
  Result.printf("%d\n%d\n%d\n%d\n%d\n%d",
    iArray[0],iArray[1],iArray[2],iArray[3],iArray[4],iArray[5]);
  ShowMessage(Result);
}
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://blog.yam.com/dllee/
brittany_1986813
一般會員


發表:1
回覆:2
積分:0
註冊:2004-03-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-08 23:04:06 IP:218.170.xxx.xxx 未訂閱
Thank you very much!
系統時間:2017-10-17 6:13:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!