請益...如何將亂數與日期合併使用 |
答題得分者是:P.D.
|
pchou
一般會員 發表:2 回覆:1 積分:0 註冊:2011-11-30 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
好像是 "作業文" 哦?
亂數 本站非常多討論, 不妨先搜尋一下 給你一個重點 randomize random 這兩組在決定亂數產生 如果會了, 利用random 在每一組日期範圍決定一個符合區間的日期出來, 再按你所寫的規則進行判斷就可以 ===================引 用 pchou 文 章=================== 想請教各位前輩 如何以日期做隨機亂數, 例如在100/1/1日~100/1/7日中隨機選取一天, 100/1/8日~100/1/14日中隨機選取一天, 100/1/15日~100/1/21日中隨機選取一天, 100/1/22日~100/1/28日中隨機選取一天, 100/1/29日~100/2/5日中隨機選取一天, 而在100/1/1日~100/1/31日中隨機選出一個日期 若與有撞期能夠重新隨機~ 拜託各位前輩請囊相授~無限感恩 |
pchou
一般會員 發表:2 回覆:1 積分:0 註冊:2011-11-30 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我沒有研究jow的程式, 不知那段是做何用, 我自己的亂數範例給你參考
function TForm1.button1Click(Sender: TObject); var i, j: integer; mH, mM, mS, mSS: word; rnd1, rnd2: integer; code: string; begin code:= ''; Randomize; for i:= 1 to 5 do begin j:= 0; repeat DecodeTime(Time, mH, mM, mS, mSS); rnd1:= round((mH * mM - mS) * mSS); rnd2:= Random(rnd1) mod 90; if (rnd2 in [48..57]) or (rnd2 in [65..90]) then begin code:= code Chr(rnd2); inc(j); end; until j=5; end; result := code; end; 重點提示 要啟用亂數種子, 要先呼叫 Randomize 要取得亂數, 要執行 Random(rnd1) 但如果 md1 是一佪固定值的話, 所取到的亂數一定一樣 Random(1) <> Random(2), 但 Random(1)=Random(1) 因此你要想辦法如何改變md1值, 否則不管做幾次, 亂數都是同一個 所以上面一大段計算 md1 的公式, 其實只是在讓亂數源不要每次都取到 一樣的值 計算公式越複雜, md1值越大, 就越不容易發生重覆現象 使用質數做為基準引值是最好的辦法, 因為質數只能被1及本身整除 所以 md1 就可以大量運用 - * / 來導一個公式 in [48..57] 判斷只是要把值換成 ascii 碼 而我這段功能是由系統由亂數取出25個隨機字元變成序號(就像windows序號一樣) 而你要的功能與這個都一樣主旨沒變, 重點不在於如何取亂數, 因為亂數取值沒有什麼技巧, 你真正要去研究的是, 亂數取出後, 如何變成日期資料, 但這也不是難事, 亂數是一個小數值, 1.如何把小數值換成整數值 2.如何把整數值判斷在日期範圍內, 1-30, 1-31, 1-28, 1-29 3.要有幾段隨機行程, 就取幾次亂數用設定好的公式代入即可 |
pprayer
高階會員 發表:35 回覆:185 積分:174 註冊:2002-03-13 發送簡訊給我 |
你可以uses delphi裡的有個Unit 叫 DateUtils
用DaysBetween 取出你要排程的兩個日期的天數差 比如說 Date1 := 100/1/1 Date2 := 100/1/7 iDays := DaysBetween(Date2,Date2); dDays := Random(iDays) Date1 dDays 就是你隨機選取的一天 ===================引 用 pchou 文 章=================== 想請教各位前輩 如何以日期做隨機亂數, 例如在100/1/1日~100/1/7日中隨機選取一天, 100/1/8日~100/1/14日中隨機選取一天, 100/1/15日~100/1/21日中隨機選取一天, 100/1/22日~100/1/28日中隨機選取一天, 100/1/29日~100/2/5日中隨機選取一天, 而在100/1/1日~100/1/31日中隨機選出一個日期 若與有撞期能夠重新隨機~ 拜託各位前輩請囊相授~無限感恩 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |