Delen via


Get-Random

Hiermee haalt u een willekeurig getal op of selecteert u objecten willekeurig uit een verzameling.

Syntaxis

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

Description

De cmdlet Get-Random haalt een willekeurig geselecteerd getal op. Als u een verzameling objecten naar Get-Randomverzendt, worden een of meer willekeurig geselecteerde objecten uit de verzameling opgehaald.

Zonder parameters of invoer retourneert een Get-Random opdracht een willekeurig geselecteerd 32-bits geheel getal zonder teken tussen 0 (nul) en Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).

U kunt de parameters van Get-Random gebruiken om een zaadnummer, minimum- en maximumwaarden en het aantal objecten op te geven dat wordt geretourneerd uit een ingediende verzameling.

Voorbeelden

Voorbeeld 1: Een willekeurig geheel getal ophalen

Met deze opdracht wordt een willekeurig geheel getal tussen 0 (nul) en Int32.MaxValue.

Get-Random

3951433

Voorbeeld 2: Een willekeurig geheel getal tussen 0 en 99 ophalen

Get-Random -Maximum 100

47

Voorbeeld 3: Een willekeurig geheel getal ophalen tussen -100 en 99

Get-Random -Minimum -100 -Maximum 100

56

Voorbeeld 4: Een willekeurig drijvendekommagetal ophalen

Met deze opdracht wordt een willekeurig drijvendekommagetal groter dan of gelijk aan 10,7 en kleiner dan 20,92.

Get-Random -Minimum 10.7 -Maximum 20.93

18.08467273887

Voorbeeld 5: Een willekeurig geheel getal ophalen uit een matrix

Met deze opdracht wordt een willekeurig geselecteerd getal opgehaald uit de opgegeven matrix.

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

8

Voorbeeld 6: Verschillende willekeurige gehele getallen ophalen uit een matrix

Met deze opdracht worden drie willekeurig geselecteerde getallen in willekeurige volgorde uit een matrix opgehaald.

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

3
1
13

Voorbeeld 7: Een hele verzameling willekeurig maken

Met deze opdracht wordt de hele verzameling in willekeurige volgorde geretourneerd.

De waarde van de parameter Count is de MaxValue statische eigenschap van gehele getallen.

Als u een volledige verzameling in willekeurige volgorde wilt retourneren, voert u een getal in dat groter is dan of gelijk is aan het aantal objecten in de verzameling.

1, 2, 3, 5, 8, 13 | Get-Random -Count ([int]::MaxValue)

2
3
5
1
8
13

Voorbeeld 8: Een willekeurige niet-numerieke waarde ophalen

Met deze opdracht wordt een willekeurige waarde uit een niet-numerieke verzameling geretourneerd.

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

yellow

Voorbeeld 9: de parameter SetSeed gebruiken

In dit voorbeeld ziet u het effect van het gebruik van de parameter SetSeed.

Omdat SetSeed- niet-willekeurig gedrag produceert, wordt deze doorgaans alleen gebruikt om resultaten te reproduceren, zoals bij het opsporen van fouten of het analyseren van een script.

# 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

Voorbeeld 10: Willekeurige bestanden ophalen

Met deze opdrachten krijgt u een willekeurig geselecteerd voorbeeld van 50 bestanden van het C: station van de lokale computer.

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

Voorbeeld 11: Roll fair dice

In dit voorbeeld wordt een fair die 1200 keer meegeteld en worden de resultaten geteld. De eerste opdracht, For-EachObject herhaalt de aanroep naar Get-Random van de doorgesluisde nummers (1-6). De resultaten worden gegroepeerd op hun waarde met Group-Object en opgemaakt als een tabel met 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

Parameters

-Count

Hiermee geeft u het aantal willekeurige objecten of getallen dat moet worden geretourneerd. De standaardwaarde is 1.

Als de waarde van Count het aantal objecten in de verzameling overschrijdt, worden bij gebruik met InputObjectGet-Random alle objecten in willekeurige volgorde geretourneerd.

Type:Int32
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u een verzameling objecten op. Get-Random willekeurig geselecteerde objecten in willekeurige volgorde uit de verzameling ophaalt tot het getal dat is opgegeven door Count. Voer de objecten, een variabele in die de objecten bevat, of een opdracht of expressie waarmee de objecten worden opgehaald. U kunt ook een verzameling objecten doorsluisen naar Get-Random.

Type:Object[]
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Maximum

Hiermee geeft u een maximumwaarde voor het willekeurige getal. Get-Random retourneert een waarde die kleiner is dan het maximum (niet gelijk aan). Voer een geheel getal, een drijvendekommagetal met dubbele precisie of een object in dat kan worden geconverteerd naar een geheel getal of dubbel, zoals een numerieke tekenreeks ('100').

De waarde van Maximum moet groter zijn dan (niet gelijk aan) de waarde van Minimum. Als de waarde van Maximum of Minimum een drijvendekommagetal is, geeft Get-Random een willekeurig geselecteerd drijvendekommagetal als resultaat.

Als op een 64-bits computer de waarde van Minimum een 32-bits geheel getal is, is de standaardwaarde van MaximumInt32.MaxValue.

Als de waarde van Minimum een dubbele waarde is (een drijvendekommagetal), is de standaardwaarde van MaximumDouble.MaxValue. Anders wordt de standaardwaarde Int32.MaxValue.

Type:Object
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Minimum

Hiermee geeft u een minimumwaarde voor het willekeurige getal. Voer een geheel getal, een drijvendekommagetal met dubbele precisie of een object in dat kan worden geconverteerd naar een geheel getal of dubbel, zoals een numerieke tekenreeks ('100'). De standaardwaarde is 0 (nul).

De waarde van Minimum moet kleiner zijn dan (niet gelijk aan) de waarde van Maximum. Als de waarde van Maximum of Minimum een drijvendekommagetal is, geeft Get-Random een willekeurig geselecteerd drijvendekommagetal als resultaat.

Type:Object
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SetSeed

Hiermee geeft u een seed-waarde voor de generator voor willekeurige getallen. Deze seed-waarde wordt gebruikt voor de huidige opdracht en voor alle volgende Get-Random opdrachten in de huidige sessie totdat u SetSeed- opnieuw gebruikt of de sessie sluit. U kunt het seed niet opnieuw instellen op de standaardwaarde.

De parameter SetSeed is niet vereist. Standaard gebruikt Get-Random de methode RandomNumberGenerator() om een seed-waarde te genereren. Omdat SetSeed- resulteert in niet-willekeurig gedrag, wordt deze doorgaans alleen gebruikt bij het reproduceren van gedrag, zoals bij het opsporen van fouten of het analyseren van een script dat Get-Random opdrachten bevat.

Type:Int32
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

Object

U kunt een of meer objecten doorsluisen. Get-Random waarden willekeurig uit de gesluisde objecten selecteert.

Uitvoerwaarden

System.Int32, System.Int64, System.Double

Get-Random retourneert een geheel getal of een drijvendekommagetal of een object dat willekeurig is geselecteerd uit een ingediende verzameling.

Notities

Get-Random stelt een standaard seed in voor elke sessie op basis van de systeemtijdklok wanneer de sessie wordt gestart.

Vanaf Windows PowerShell 3.0 ondersteunt Get-Random 64-bits gehele getallen. In Windows PowerShell 2.0 worden alle waarden omgezet in System.Int32.