- Регистрация
- 9 Май 2015
- Сообщения
- 1,551
- Баллы
- 155
Добрый день, сегодня я заведу разговор о том, как можно сгенерировать случайное число.
Случайное оно будет, конечно, только условно. Часто такого рода числа называют псевдослучайными. Но не переживайте в этом нет ничего страшного. В этой статья я разберу несколько функций, а также продемонстрирую их применение на практике.
Первая функция, которой я пользуюсь чаще всего- Random(), она генерирует случайное целое число или число с плавающей запятой.
Random(1000000) – генерирует целое число от 0 до 999999
Random() – генерирует число с плавающей точкой от 0 до 1
Следующая функция - RandomRange(X,Y), функция принимает два параметра и возвращает целое число, которое больше Х и меньше Y. Перед использованием нужно подключить библиотеку Math.
RandomRange(10,100) – генерирует целое число от 10 до 100.
И последняя функция, которую я применяю на практике - RandG(X,Y), она также принимает пару входных значений и генерирует псевдослучайное число, используя распределение Гаусса. Для неё также необходимо подключить Math.
RandG(100,10) – сгенерирует число с плавающей точкой от 90 до 110 (то есть в границах от 100-10 до 100+10)
Ещё хочу показать несколько простых приемов:
Сгенерировать дробное число от 0 до 1 можно следующим образом –
random(1000000000) / (9999999999)
А получить дробное число от 0 до 100 можно так –
Random(100)+(random(100000000) / (99999999)
Думаю смысл этих выражений пояснять не нужно.
Давайте перейдем от слов к делу и попробуем все на практике.
Создайте новое оконное приложение и разместите на главной форме шесть editи шесть button. Приведите все к виду, как изображено на рисунке.

Код будет следующим:
Надеюсь, что после данной статьи у Вас не возникнет больше вопросов о генерации случайных чисел. Если же они будут – пишите комментарии, я в свою очередь постараюсь на все вопросы ответить.
Случайное оно будет, конечно, только условно. Часто такого рода числа называют псевдослучайными. Но не переживайте в этом нет ничего страшного. В этой статья я разберу несколько функций, а также продемонстрирую их применение на практике.
Первая функция, которой я пользуюсь чаще всего- Random(), она генерирует случайное целое число или число с плавающей запятой.
Random(1000000) – генерирует целое число от 0 до 999999
Random() – генерирует число с плавающей точкой от 0 до 1
Следующая функция - RandomRange(X,Y), функция принимает два параметра и возвращает целое число, которое больше Х и меньше Y. Перед использованием нужно подключить библиотеку Math.
RandomRange(10,100) – генерирует целое число от 10 до 100.
И последняя функция, которую я применяю на практике - RandG(X,Y), она также принимает пару входных значений и генерирует псевдослучайное число, используя распределение Гаусса. Для неё также необходимо подключить Math.
RandG(100,10) – сгенерирует число с плавающей точкой от 90 до 110 (то есть в границах от 100-10 до 100+10)
Ещё хочу показать несколько простых приемов:
Сгенерировать дробное число от 0 до 1 можно следующим образом –
random(1000000000) / (9999999999)
А получить дробное число от 0 до 100 можно так –
Random(100)+(random(100000000) / (99999999)
Думаю смысл этих выражений пояснять не нужно.
Давайте перейдем от слов к делу и попробуем все на практике.
Создайте новое оконное приложение и разместите на главной форме шесть editи шесть button. Приведите все к виду, как изображено на рисунке.

Код будет следующим:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
Edit3: TEdit;
Button3: TButton;
Edit4: TEdit;
Button4: TButton;
Edit5: TEdit;
Button5: TButton;
Edit6: TEdit;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntTostr(Random(1000000)); // Случайное целое число от 0 до 999999
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text:=IntToStr(RandomRange(65, 650)); // Генерируем целое число на интервале от 65 до 650
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit3.Text := FloatToStr(random(99999999) / (99999999)); // Генерируем дробное число от 0 до 1
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Edit4.Text:=FloatToStr(Random); // Генерируем дробное число от 0 до 1
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Edit5.Text:=FloatToStr(Random(100)+(random(100000000) / (99999999))); // Генерируем дробное число от 0 до 100
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Edit6.Text:= FloatToStr(RandG(100,10)); // Генерирует псевдослучайное число, используя распределение Гаусса.
end;
end.