close

標題:

Pascal 問題 六合彩 ticket

發問:

aa.jpg

 

此文章來自奇摩知識+如有不便請留言告知

要用pascal寫一個program 係要整d六合彩組合出黎 (1-49) eg. 5 9 18 25 33 41, 2 4 9 16 31 36 ...... 我的寫法: array:number[1..6]of integer 跟住for i:=1 to 6 do number[i]:=random(50) 之後用boolean去check重覆同no.係零的 有就false 再random過 冇就ture 打ticket 之後成功寫完 可惜我呀sir話唔可以用boolean寫 我就唔識寫了..... 有冇人可以教下我??? 講原理同大約寫法就ok了 唔洗打出黎 plx help~~~

最佳解答:

電腦六合彩有兩種寫法: 1. 標記法: 大約好似你上面的講法, 開一個1..49格的boolean陣列; 重複出隨機數, 直至佢未出現過(在boolean陣列中沒有記號) 總共做6次, 最後boolean陣列中有6個記號(true), 順序由1--49格檢查哪6格有記號 大約寫法: var seen:array[1..49] of boolean; ...... begin 把seen的格填false; for i:=1 to 6 do begin repeat m:=random(49)+1; until not seen[m]; seen[m]:=true; end; ..... 2. 方法2: 順序查找法 每出一個隨機數, 都檢查在之前出過的數之中有冇出過, 如果有就重出, 例如出到第5個, 第由第1個到第4個比較, 看看有冇重複。 var a:array[1..6] of integer; ... begin for i:=1 to 6 do repeat a[i]:=random(49)+1; f:=0; for j:=1 to i-1 do if a[j]=a[i] then begin f:=1; break; end; until f=0; ..... end. 睇完上面段程式大概明白吧, 唔明可以再問, 而中間由1至i-1搵重複可以唔用f:=0; 改用true和false都得, 亦可以唔用for, 改用while都得。 注意:為了可以縮入,我每句前面用了全型空格,所以唔好直接複制入pascal到執行。

其他解答:

arrow
arrow
    創作者介紹
    創作者 hzb53jl55v 的頭像
    hzb53jl55v

    hzb53jl55v的部落格

    hzb53jl55v 發表在 痞客邦 留言(0) 人氣()