Get-Random

Mendapatkan angka acak, atau memilih objek secara acak dari koleksi.

Sintaks

Get-Random
   [-SetSeed <Int32>]
   [[-Maximum] <Object>]
   [-Minimum <Object>]
   [-Count <Int32>]
   [<CommonParameters>]
Get-Random
   [-SetSeed <Int32>]
   [-InputObject] <Object[]>
   [-Count <Int32>]
   [<CommonParameters>]
Get-Random
   [-SetSeed <Int32>]
   [-InputObject] <Object[]>
   [-Shuffle]
   [<CommonParameters>]

Deskripsi

Get-Random Cmdlet mendapatkan angka yang dipilih secara acak. Jika Anda mengirimkan kumpulan objek ke Get-Random, ia mendapatkan satu atau beberapa objek yang dipilih secara acak dari koleksi.

Tanpa parameter atau input, Get-Random perintah mengembalikan bilangan bulat yang tidak ditandatangani 32-bit yang dipilih secara acak antara 0 (nol) dan Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).

Secara default, Get-Random menghasilkan keacakan yang aman secara kriptografis menggunakan kelas RandomNumberGenerator .

Anda dapat menggunakan parameter Get-Random untuk menentukan nilai minimum dan maksimum, jumlah objek yang dikembalikan dari koleksi, atau angka awal.

Perhatian

Mengatur benih sengaja menghasilkan perilaku yang tidak acak dan dapat diulang. Ini hanya boleh digunakan saat mencoba mereproduksi perilaku, seperti saat men-debug atau menganalisis skrip yang menyertakan Get-Random perintah.

Nilai awal ini digunakan untuk perintah saat ini dan untuk semua perintah berikutnya Get-Random dalam sesi saat ini hingga Anda menggunakan SetSeed lagi atau menutup sesi. Anda tidak dapat mengatur ulang nilai awal ke nilai defaultnya.

Contoh

Contoh 1: Mendapatkan bilangan bulat acak

Perintah ini mendapatkan bilangan bulat acak antara 0 (nol) dan Int32.MaxValue.

Get-Random

3951433

Contoh 2: Mendapatkan bilangan bulat acak antara 0 dan 99

Get-Random -Maximum 100

47

Contoh 3: Mendapatkan bilangan bulat acak antara -100 dan 99

Get-Random -Minimum -100 -Maximum 100

56

Contoh 4: Mendapatkan angka floating-point acak

Perintah ini mendapatkan angka floating-point acak yang lebih besar dari atau sama dengan 10,7 dan kurang dari 20,92.

Get-Random -Minimum 10.7 -Maximum 20.93

18.08467273887

Contoh 5: Mendapatkan bilangan bulat acak dari array

Perintah ini mendapatkan angka yang dipilih secara acak dari array yang ditentukan.

1, 2, 3, 5, 8, 13 | Get-Random

8

Contoh 6: Mendapatkan beberapa bilangan bulat acak dari array

Perintah ini mendapatkan tiga angka yang dipilih secara acak dalam urutan acak dari array.

1, 2, 3, 5, 8, 13 | Get-Random -Count 3

3
1
13

Contoh 7: Mengacak seluruh koleksi

Mulai dari PowerShell 7.1, Anda dapat menggunakan parameter Acak untuk mengembalikan seluruh koleksi dalam urutan acak.

1, 2, 3, 5, 8, 13 | Get-Random -Shuffle

2
3
5
1
8
13

Contoh 8: Mendapatkan nilai non-numerik acak

Perintah ini mengembalikan nilai acak dari koleksi non-numerik.

"red", "yellow", "blue" | Get-Random

yellow

Contoh 9: Gunakan parameter SetSeed

Contoh ini menunjukkan efek menggunakan parameter SetSeed .

Karena SetSeed menghasilkan perilaku non-acak, biasanya hanya digunakan untuk mereproduksi hasil, seperti saat men-debug atau menganalisis skrip.

# Commands with the default seed are pseudorandom
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100

74
56
84
46

# Commands with the same seed are not random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23

74
74
74

# SetSeed results in a repeatable series
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100
Get-Random -Maximum 100
Get-Random -Maximum 100

74
56
84
46

Contoh 10: Mendapatkan file acak

Perintah ini mendapatkan sampel 50 file yang dipilih secara acak dari C: drive komputer lokal.

$Files = Get-ChildItem -Path C:\* -Recurse
$Sample = $Files | Get-Random -Count 50

Contoh 11: Putar dadu adil

Contoh ini menggulung mati adil 1200 kali dan menghitung hasilnya. Perintah pertama, ForEach-Object mengulangi panggilan ke Get-Random dari yang disalurkan dalam angka (1-6). Hasilnya dikelompokkan menurut nilainya dengan Group-Object dan diformat sebagai tabel dengan Select-Object.

1..1200 | ForEach-Object {
    1..6 | Get-Random
} | Group-Object | Select-Object Name,Count

Name Count
---- -----
1      206
2      199
3      196
4      226
5      185
6      188

Contoh 12: Gunakan parameter Hitung

Anda sekarang dapat menggunakan parameter Hitung tanpa pipa objek ke Get-Random. Contoh berikut mendapatkan tiga angka acak kurang dari 10.

Get-Random -Count 3 -Maximum 10

9
0
8

Contoh 13: Gunakan parameter InputObject dengan string kosong atau $null

Dalam contoh ini, parameter InputObject menentukan array yang berisi string kosong ('') dan $null.

Get-Random -InputObject @('a','',$null)

Get-Random akan mengembalikan , astring kosong, atau $null. Sengatan kosong ditampilkan sebagai baris kosong dan $null kembali ke prompt PowerShell.

Parameter

-Count

Menentukan jumlah objek acak atau angka yang akan dikembalikan. Defaultnya adalah 1.

Saat digunakan dengan InputObject, jika nilai Count melebihi jumlah objek dalam koleksi, Get-Random mengembalikan semua objek dalam urutan acak.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Menentukan kumpulan objek. Get-Random mendapatkan objek yang dipilih secara acak dalam urutan acak dari koleksi hingga angka yang ditentukan oleh Count. Masukkan objek, variabel yang berisi objek, atau perintah atau ekspresi yang mendapatkan objek. Anda juga dapat menyalurkan kumpulan objek ke Get-Random.

Dimulai di PowerShell 7, parameter InputObject menerima array yang dapat berisi string kosong atau $null. Array dapat dikirim ke alur atau sebagai nilai parameter InputObject .

Type:Object[]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Maximum

Menentukan nilai maksimum untuk angka acak. Get-Random mengembalikan nilai yang kurang dari maksimum (tidak sama dengan). Masukkan bilangan bulat, angka floating-point presisi ganda, atau objek yang dapat dikonversi menjadi bilangan bulat atau ganda, seperti string numerik ("100").

Nilai Maksimum harus lebih besar dari (tidak sama dengan) nilai Minimum. Jika nilai Maksimum atau Minimum adalah angka floating-point, Get-Random mengembalikan angka floating-point yang dipilih secara acak.

Pada komputer 64-bit, jika nilai Minimum adalah bilangan bulat 32-bit, nilai default Maksimum adalah Int32.MaxValue.

Jika nilai Minimum adalah ganda (angka floating-point), nilai default Maksimum adalah Double.MaxValue. Jika tidak, nilai defaultnya adalah Int32.MaxValue.

Type:Object
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Minimum

Menentukan nilai minimum untuk angka acak. Masukkan bilangan bulat, angka floating-point presisi ganda, atau objek yang dapat dikonversi menjadi bilangan bulat atau ganda, seperti string numerik ("100"). Nilai defaultnya adalah 0 (nol).

Nilai Minimum harus kurang dari (tidak sama dengan) nilai Maksimum. Jika nilai Maksimum atau Minimum adalah angka floating-point, Get-Random mengembalikan angka floating-point yang dipilih secara acak.

Type:Object
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-SetSeed

Menentukan nilai awal untuk generator angka acak. Saat Anda menggunakan SetSeed, cmdlet menggunakan metode System.Random untuk menghasilkan angka pseudorandom, yang tidak aman secara kriptografis.

Perhatian

Mengatur nilai awal menghasilkan perilaku non-acak. Ini hanya boleh digunakan saat mencoba mereproduksi perilaku, seperti saat men-debug atau menganalisis skrip yang menyertakan Get-Random perintah.

Nilai awal ini digunakan untuk perintah saat ini dan untuk semua perintah berikutnya Get-Random dalam sesi saat ini hingga Anda menggunakan SetSeed lagi atau menutup sesi. Anda tidak dapat mengatur ulang nilai awal ke nilai defaultnya.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Shuffle

Mengembalikan seluruh koleksi dalam urutan acak.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Input

Object

Anda dapat menyalurkan satu atau beberapa objek. Get-Random memilih nilai secara acak dari objek yang disalurkan.

Output

System.Int32, System.Int64, System.Double

Get-Random mengembalikan bilangan bulat atau angka floating-point, atau objek yang dipilih secara acak dari koleksi yang dikirimkan.

Catatan

Secara default, Get-Random menghasilkan keacakan yang aman secara kriptografis menggunakan kelas RandomNumberGenerator .

Get-Random tidak selalu mengembalikan jenis data yang sama dengan nilai input. Tabel berikut menunjukkan jenis output untuk setiap jenis input numerik.

Jenis input Jenis Output
Sbyte Double
Byte Double
Int16 Double
UInt16 Double
Int32 Int32
UInt32 Ganda
Int64 Int64
UInt64 Double
Double Double
Tunggal Double

Mulai Windows PowerShell 3.0, Get-Random mendukung bilangan bulat 64-bit. Dalam Windows PowerShell 2.0, semua nilai ditransmisikan ke System.Int32.

Dimulai di PowerShell 7, parameter InputObject di set parameter RandomListItemParameterSet menerima array yang berisi string kosong atau $null. Di versi PowerShell sebelumnya, hanya parameter Maksimum dalam set parameter RandomNumberParameterSet yang menerima string kosong atau $null.