Cara Generate Bilangan Random Pada Delphi
Random Function
Generate bilangan acak floating point
atau integer.
1. function Random : Extended;
2. function Random ( LimitPlusOne :
Integer ) : Integer;
Deskripsi
Random function menghasilkan
bilangan-bilangan random. Dapat berupa Floating Point Number yaitu dalam
kisaran :
0
<= Number < 1.0
Atau berupa Integer number dalam kisaran
:
0
<= Number < LimitPlusOne
Delphi menggunakan generator bilangan
pseudo acak yang selalu mengembalikan urutan nilai yang sama (232)
setiap kali program berjalan. Untuk
menghindari prediktabilitas, gunakan Random prosedur. Ini mereposisi ke dalam
urutan bilangan acak menggunakan waktu dalam hari sebagai seed pseudo random.
Contoh kode: Generate set bilangan floating
point dan integer.
var
float : single;
int : Integer;
i :
Integer;
begin
for i := 1 to 5 do
begin
float := Random;
ShowMessage('float =
'+FloatToStr(float));
end;
ShowMessage('');
// dapatkan
angka integer random dalam rentang 1..100
for i := 1 to 5 do
begin
int := 1 + Random(100); // nilai 100
memberi rentang 0..99
ShowMessage('int =
'+IntToStr(int));
end;
end;
|
Randomize Procedure
Reposisi generator bilangan acak nilai
berikutnya.
procedure Randomize;
Deskripsi:
Prosedur Randomize digunakan dalam
hubungannya dengan theRandom function. Ini mereposisi generator bilangan acak
dalam urutan 232 pseudo
random numbers. Randomize menggunakan waktu dalam hari sebagai seed untuk
reposisi, sehingga harus menyediakan metode yang dapat diandalkan untuk
menciptakan suatu urutan angka yang tak terduga, bahkan jika itu adalah bagian
dari urutan yang telah ditentukan.
Contoh kode: Jalankan kode ini dua kali
untuk melihat efek Randomize
var
int : Integer;
i : Integer;
begin
// Jika run 2 x, hanya yang pertama
5 nilai
// mereposisi menjadi bagian yang
berbeda dari pseudo sequence
// dapatkan integer random number dari
rentang 1..100
ShowMessage('Fixed first 5 random numbers');
for i := 1 to 5 do
begin
int := 1 + Random(100); // Nilai 100 memberikan kisaran 0..99
ShowMessage('int = '+IntToStr(int));
end;
// randomize untu reposisi
Randomize;
ShowMessage('');
// dapatkan bilangan integer random dalam
rentang 1..100
ShowMessage('Random next 5 numbers');
for i := 1 to 5 do
begin
int := 1 + Random(100); // nilai 100 memberi kisaran 0..99
ShowMessage('int = '+IntToStr(int));
end;
end;
|
RandomRange
Function
Generate bilangan random integer dalam
kisaran disediakan.
function RandomRange ( const
RangeFrom, RangeTo : Integer
) : Integer;
Deskripsi
Fungsi RandomRange menghasilkan sejumlah
Integer acak dalam rentang RangeFrom to RangeToinclusively. Ini memberikan
versi yang lebih baik dari fungsi unitRandom Sistem. Keduanya menggunakan
urutan nomor pseudo random dari 232 nilai. Setiap kali menjalankan
program, nilai-nilai yang dihasilkan akan sama, kecuali jika reposisi generator
untuk bagian yang berbeda dari urutan menggunakan fungsi Randomize orRandSeed.
Contoh kode: Generate bilangan random
dalam rentang yang sangat kecil.
var
i : Integer;
begin
// Tampilkan
5 angka acak dalam kisaran 652-656
for i := 1 to 5 do
ShowMessage('Random
number : '+IntToStr(RandomRange(652,
656)));
end;
|
RandSeed Variabel
Reposisi generator bilangan acak nilai
berikutnya.
var RandSeed : LongInt;
Deskripsi:
Variabel
RandSeed digunakan dalam hubungannya dengan theRandom function. Ini mengubah
seed yang digunakan Delphi untuk menghasilkan jangkauan 232 pseudo
random numbers.
Contoh kode: Jalankan
kode ini dua kali untuk melihat efek RandSeed
var
int : Integer;
i :
Integer;
hours, mins, secs, milliSecs :
Word;
begin
// dapatkan
random numbers menggunakan nilai default random seed
ShowMessage('Fixed first 5 random
numbers');
for i := 1 to 5 do
begin
int := 1 +
Random(100); // nilai 100 memberikan kisaran
0..99
ShowMessage('int =
'+IntToStr(int));
end;
// Sekarang
mengubah random seed dengan nilai millisecond
// dari
waktu saat ini
DecodeTime(now, hours, mins,
secs, milliSecs);
ShowMessage('');
ShowMessage('Setting randSeed to
value : '+IntToStr(milliSecs));
ShowMessage('');
RandSeed := milliSecs;
// dapatkan
integer random number dalam kisaran 1..100
ShowMessage('Random next 5 numbers');
for i := 1 to 5 do
begin
int := 1 +
Random(100); // nilai 100 memberi rentang
0..99
ShowMessage('int =
'+IntToStr(int));
end;
end;
|
Posted By Kursus Digital Marketing12:40 AM