Random
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Tipe data Random menghasilkan angka dan arah pseudorandom.
Rangkuman
Metode
Kembalikan pseudorandom integer secara merata dibagikan di [min, max] .
Kembalikan angka pseudorandom yang secara merata dibagikan di [0, 1] .
Kembalikan angka pseudorandom yang secara merata dibagikan di [min, max] .
Secara merata mengocokkan meja di tempatnya.
Kembalikan vektor unit dengan arah pseudorandom.
Kembalikan objek Acak baru dengan status yang sama dengan aslinya.
Konstruktor
new
Kembalikan objek baru Random . Jika Anda tidak memberikan parameter seed, Random menggunakan seed dari sumber entrop internal.
Jika Anda memberikan benih, itu harus berada dalam rentang [-9007199254740991, 9007199254740991], dan Random akan membulatkannya ke bilangan bulat terdekat.Jadi benih 0, 0.99, dan math.random() semua menghasilkan generator identik.Jika Anda perlu menghasilkan seed dan menyimpannya untuk pengambilan nanti, gunakan math.random(max) .
Parameter
Contoh Kode
Membuat seed pseudorandom dan menggunakannya untuk membuat generator baru Random .
local max = 2147483647 -- gunakan integer besar
local seed = math.random(max)
local generator = Random.new(seed)
Metode
Shuffle
Secara merata mengocok bagian array dari tb di tempat menggunakan NextInteger untuk memilih indeks.Jika ada nil "lubang" di bagian array tabel, Shuffle melempar kesalahan, karena pengocokan bisa mengubah panjang.
Bagian hash dari tb diabaikan. Tidak ada metode metamodifikasi dari tb yang diaktifkan.
Kocokan didefinisikan sebagai kocokan Fisher-Yates sehingga jumlah panggilan NextInteger dijamin konsisten antara versi mesin untuk ukuran tabel tertentu.