Задача состоит в том, чтобы в элементах некого массива а[0..73] рандомно разместить числа от 0 до 73.
procedure createRanBase;
var m,n,x:integer;
var isInBase:boolean;
begin
n:=0;
repeat
begin
isInBase:=false;
Randomize;
x := Random(74);
for m := 0 to 73 do
begin
if intRandomBase[m] = x then
begin
isInBase:=true;
break;
end;
end;
if isInBase=false then
begin
intRandomBase[n] := x;
n:= n + 1;
end;
end;
until n=74;
exit.
Программа зацикливается. При замене
Random(74) на
Random(75), программа работала нормально, но в массив заносилось ненужное число 74.
Вопрос:
В чем проблема?
Кстати, Random(75) по непонятным причинам никогда не равно нулю...
И наконец появился еще один вопрос - какая-же это к черту рандомность? Можно-ли как-то модифицировать формулу, чтобы значения были более рассеяны?