✔ 最佳答案
電腦六合彩有兩種寫法:
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到執行。