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; |
0 comments:
Post a Comment