Генерация случайных чисел.

Дата публикации

Добрый день, сегодня я заведу разговор о том, как можно сгенерировать случайное число.

Случайное оно будет, конечно, только условно. Часто такого рода числа называют псевдослучайными. Но не переживайте в этом нет ничего страшного.  В этой статья я разберу несколько функций, а также продемонстрирую их применение на практике.

Первая функция, которой я пользуюсь чаще всего- 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.

 

Надеюсь, что после данной статьи у Вас не возникнет больше вопросов о генерации случайных чисел. Если же они будут – пишите комментарии, я в свою очередь постараюсь на все вопросы ответить.

 

Добавить комментарий



Обновить

Комментарии   

 
0 #4 Maxim 10.12.2016 08:20
Цитирую Kitty:
Подскажите где вы заказыватете написание статей на
Ваш сайте, очень интересно пишут

Для этого сайта пишу самостоятельно
Цитировать
 
 
0 #3 Kitty 09.12.2016 15:26
Подскажите где вы заказыватете написание статей на
Ваш сайте, очень интересно пишут
Цитировать
 
 
0 #2 Maxim 26.04.2016 05:26
Цитирую Екатерина:
Здравствуйте! а почему на кнопку 3 и 4 дробное число от 0 до 1, два раза одно и тоже?


По 3 и 4 кнопке генерируется число от 0 до 1 разными методами.
Цитировать
 
 
+1 #1 Екатерина 26.04.2016 05:09
Здравствуйте! а почему на кнопку 3 и 4 дробное число от 0 до 1, два раза одно и тоже?
Цитировать
 
Thursday the 14th. icq 486350790
Copyright 2012

©