По заданию нужно получить 200 значений в интервале от 1 до 5,4. И вот возник вопросик: Мне нужны случайно сгенерированные числа с заданным диапазоном значений от 1 до 5,4. Я накидал простой генератор, но числа выпадают от 0 до 1, как это поменять? Вот, что у меня получилось:
private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation const n=200;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var i:integer; r,b:real; x:array[1..n] of real; begin b:=2; randomize; for i:=1 to n do begin r:=random; x[i]:=-ln(r)/b; Form1.Memo1.Lines.Add(FloatToStr(x[i])); end; end; end.
private { Private declarations } public { Public declarations } end;
var Form1: TForm1; implementation {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var i:integer; x:array[1..200] of real; begin randomize; for i:=1 to 200 do begin x[i]:=random(5)+random(4)/10+1; Form1.Memo1.Lines.Add(FloatToStr(x[i])); end; end; end.
причем, если объявдять в implementation n=200, то еще при старте проги массив заполняется real'ьными числами
Автор: Atreides 20.03.2007 15:51
Суть в том, что мне нужно 200 случайных значений в диапазоне от 1 до 5.4. Причем числа формата с точностью до тысячных (три знака после запятой) для того, что бы точно построить график. А если диапазон от 1 до 3?
Автор: Lapp 20.03.2007 16:02
Цитата(Atreides @ 20.03.2007 11:51)
Суть в том, что мне нужно 200 случайных значений ... А если диапазон от 1 до 3?
Atreides, тебе же ответил Malice.. Чем тебе не нравится его ответ?
Автор: Адель 20.03.2007 16:17
Цитата
Причем числа формата с точностью до тысячных (три знака после запятой)
что то типо
x[i]:=int(random*4.4*1000)/1000+1;
Автор: hardcase 20.03.2007 23:18
Цитата(Atreides @ 20.03.2007 11:51)
Суть в том, что мне нужно 200 случайных значений в диапазоне от 1 до 5.4. Причем числа формата с точностью до тысячных (три знака после запятой) для того, что бы точно построить график. А если диапазон от 1 до 3?
Код
function RandomBetween(lowBound, highBound: double): double; begin RandomBetween := Random() * (highBound - lowBound) + lowBound; end;
Автор: Atreides 6.11.2007 20:40
Снова столкнулся с проблемой генератора чисел. Нужен генератор случайных чисел с равномерным распределением. В заданных диапазонах значений.