[C++]6個亂數互不重複 |
尚未結案
|
brittany_1986813
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2004-03-27 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
以前我看過洗牌的程式,洗法有兩種,
1. 抽牌法:先把牌排好放在陣列中,以亂數產生 index 抽出剩餘的牌,直到抽完所有的牌。此法不用比對,比較麻煩的是要維護牌的陣列。
2. 牌交換:同樣先把牌排好放在陣列中,以亂數產生 2 個 index,將那兩張牌交換,即 index 所指的數值交換。或以亂數產生 1 個 index,由第一張依序與亂數 index 交換。
這兩種方法都不需要與已產生出來的亂數做比對,比較實用一些。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
brittany_1986813
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2004-03-27 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
{ // 洗牌法之牌交換 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://www.ViewMove.com |
brittany_1986813
一般會員 ![]() ![]() 發表:1 回覆:2 積分:0 註冊:2004-03-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |