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.

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

Perhatian

Get-Random tidak memastikan keacakan yang aman secara kriptografis. Nilai awal 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 seed ke nilai defaultnya.

Sengaja mengatur benih 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. Ketahuilah bahwa nilai seed dapat diatur oleh kode lain dalam sesi yang sama, seperti modul yang diimpor.

PowerShell 7.4 mencakup Get-SecureRandom, yang memastikan keacakan yang aman secara kriptografis.

Contoh

Contoh 1: Mendapatkan bilangan bulat acak

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

Get-Random

3951433

Contoh 2: Dapatkan bilangan bulat acak antara 0 dan 99

Get-Random -Maximum 100

47

Contoh 3: Dapatkan 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,93.

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: Dapatkan 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 penggunaan 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

32
25
93
95

# Commands with the same seed aren't random
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23
Get-Random -Maximum 100 -SetSeed 23

32
32
32

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

32
25
93
95

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: Gulung 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

Sekarang Anda dapat menggunakan parameter Hitung tanpa objek pemisah 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 mengembalikan , astring kosong, atau $null. Sengatan kosong ditampilkan sebagai baris kosong dan $null kembali ke perintah PowerShell.

Parameter

-Count

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

Saat digunakan dengan InputObject berisi koleksi:

  • Setiap item yang dipilih secara acak dikembalikan hanya sekali.
  • Jika nilai Hitungan melebihi jumlah objek dalam koleksi, semua objek dalam koleksi dikembalikan dalam urutan acak.
Type:Int32
Position:Named
Default value:None
Required:False
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 Hitungan. 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
Required:True
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
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SetSeed

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

Perhatian

Mengatur benih 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 seed ke nilai defaultnya.

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

-Shuffle

Mengembalikan seluruh koleksi dalam urutan acak.

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

Input

Object

Anda dapat menyalurkan objek apa pun ke cmdlet ini. Ini memilih nilai secara acak dari objek yang disalurkan.

Output

Int32

Int64

Double

PSObject

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

Catatan

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 Laju
Byte Laju
Int16 Laju
UInt16 Laju
Int32 Int32
UInt32 Laju
Int64 Int64
UInt64 Laju
Laju Laju
Tunggal Laju

Dimulai di Windows PowerShell 3.0, Get-Random mendukung bilangan bulat 64-bit. Di 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.