Fungsi RND() adalah fungsi yang sangat penting. Jika Anda ingin membuat salam acak, permintaan acak untuk kencan, atau bahkan permainan, Anda dapat menggunakan fungsi ini
Fungsi ASP rnd()
Fungsi rnd() mengembalikan angka acak antara 0 dan 1.
Cara menggunakannya:
Copy kode kodenya sebagai berikut:
respon.write rnd() 'Kemungkinan nilai kembalian: 0,2357746
Jika Anda ingin menggunakan fungsi rnd() untuk mengembalikan bilangan bulat dalam rentang tertentu, misalnya bilangan yang lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan batas atas bilangan bulat tertentu, Anda dapat menggunakan metode berikut:
Copy kode kodenya sebagai berikut:
respon.tulis int((batas atas+1)*rnd)
Misalnya, pernyataan berikut akan mengembalikan bilangan bulat antara 0 dan 5, inklusif:
Copy kode kodenya sebagai berikut:
respon.tulis int((5+1)*rnd)
Jika Anda ingin mendapatkan angka acak dalam rentang tertentu yang memiliki batas bawah lebih besar dari 0, Anda dapat menggunakan cara berikut:
Copy kode kodenya sebagai berikut:
respon.tulis int((batas atas-bawah+1)*rnd+batas bawah)
Misalnya, skrip berikut menghasilkan bilangan bulat antara 50 dan 75, inklusif:
Copy kode kodenya sebagai berikut:
respon.tulis int((75-50+1)*rnd+50)
Namun, ada masalah. Nomor acak dihasilkan, tetapi nomor acaknya sama setiap saat. Hal ini mungkin membuat Anda sangat bingung. Ada pernyataan khusus yang dapat membantu menyelesaikan masalah ini, yaitu pernyataan pengacakan.
Pernyataan pengacakan digunakan untuk memaksa fungsi rnd menggunakan urutan bilangan acak baru. Pernyataan pengacakan memberikan nilai awal baru ke fungsi rnd melalui pengatur waktu sistem komputer.
Fungsi RND() adalah fungsi yang sangat penting. Jika Anda ingin membuat salam acak, permintaan acak untuk kencan, atau bahkan permainan, Anda dapat menggunakan fungsi ini.
Fungsi RND() mengembalikan angka acak antara 0 dan 1. Berikut adalah contoh fungsi ini dan kemungkinan nilai kembaliannya:
<%=RND()%>
0,7055643
Biasanya, Anda lebih tertarik menggunakan fungsi ini untuk mengembalikan bilangan bulat dalam rentang tertentu. Untuk mengembalikan angka yang lebih besar atau sama dengan 0 tetapi lebih kecil dari bilangan bulat tertentu, Anda dapat menggunakan pernyataan berikut:
<%=INT((batas atas+1)*RND)%>
Ganti ekspresi batas atas dengan angka acak terbesar yang ingin Anda hasilkan. Misalnya, skrip berikut mengembalikan angka antara 0 dan 5, inklusif:
<%=INT(5+1)*RND)%>
Jika Anda ingin menghasilkan angka acak dalam rentang yang memiliki batas bawah lebih besar dari 0, Anda dapat menggunakan skrip berikut:
<%=INT((batas atas – batas bawah + 1)*RND+batas bawah)%>
Misalnya, skrip berikut menghasilkan angka acak antara 50 dan 75 (inklusif):
<%=INT((75-50+1)*RND+50)%>
Mungkin mengejutkan Anda bahwa setiap kali Anda menggunakan fungsi RND(), ia mengembalikan nomor acak yang sama dalam urutan yang sama. Perhatikan contoh berikut:
Copy kode kodenya sebagai berikut:
<%
Pilih_Salam=INT((2+1)*RND)
PILIH KASUS Pick_Salam
KASUS 0
Salam=”Selamat datang!”
KASUS 1
Salam=”Halo!”
KASUS 2
Salam=”Senang bertemu Anda!”
AKHIR PILIH
%>
<%=Salam%>
Skrip ini membuat dan mencetak salam acak. Namun, mungkin saja hal itu tidak berjalan seperti yang Anda bayangkan. Setiap kali seseorang mendownload halaman web yang berisi skrip ini, salam acak yang sama akan dicetak. Jika seseorang kembali ke halaman ini beberapa kali, dia akan mendapatkan salam yang sama. Nomor acak dihasilkan, tetapi nomor acaknya selalu sama.
Ada pernyataan khusus yang membantu mengatasi masalah ini. Pernyataan RANDOMIZE digunakan untuk memaksa fungsi RND() menggunakan urutan nomor acak baru. Pernyataan RANDOMIZE memberikan nilai awal baru untuk berfungsi RND() melalui pengatur waktu sistem komputer. Contoh berikut menunjukkan cara memodifikasi contoh di atas agar berfungsi dengan benar:
Copy kode kodenya sebagai berikut:
<%
RANDOMISASI
Pilih_Salam=INT((2+1)*RND)
PILIH KASUS Pick_Salam
KASUS 0
Salam=”Selamat datang!”
KASUS 1
Salam=”Halo!”
KASUS 2
Salam=”Senang bertemu Anda!”
AKHIR PILIH
%>
<%=Salam%>
Skrip ini berfungsi dengan benar. Setiap kali skrip ini dijalankan, salam acak baru akan dihasilkan. Pernyataan RANDOMIZE memaksa fungsi RND() menggunakan urutan angka acak yang baru.
Terakhir, jika Anda penasaran dengan sebaran nilai yang dihasilkan oleh fungsi RND(), Anda dapat menentukannya dengan skrip berikut:
Copy kode kodenya sebagai berikut:
<%
CONST batas atas=9,iterasi=100
REDIM DIST (batas atas)
RANDOMISASI
UNTUK i=1 hingga iterasi
rnd_num=INT((batas atas+1)*RND)
DIST(rnd_num)=DIST(rnd_num)&”#”
BERIKUTNYA
UNTUK i=0 ke batas atas
%>
<%=i&” : “&DIST(i)%><BR>
<%
BERIKUTNYA
%>
Skrip ini menghasilkan 100 angka acak antara 0 dan 9. Ini melacak berapa banyak angka acak yang dihasilkan untuk setiap nilai. Terakhir, ia mencetak diagram batang yang mewakili hasilnya.