Sdílet prostřednictvím


Get-Random

Získá náhodné číslo nebo vybere objekty náhodně z kolekce.

Syntax

RandomNumberParameterSet (Výchozí)

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

RandomListItemParameterSet

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

Description

Rutina Get-Random získá náhodně vybrané číslo. Pokud odešlete kolekci objektů do Get-Random, získá jeden nebo více náhodně vybraných objektů z kolekce.

Bez parametrů nebo vstupu vrátí příkaz Get-Random náhodně vybrané 32bitové celé číslo bez znaménka mezi 0 (nula) a Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).

Pomocí parametrů Get-Random můžete zadat počáteční číslo, minimální a maximální hodnoty a počet objektů vrácených ze odeslané kolekce.

Příklady

Příklad 1: Získání náhodného celého čísla

Tento příkaz získá náhodné celé číslo mezi 0 (nula) a Int32.MaxValue.

Get-Random
3951433

Příklad 2: Získání náhodného celého čísla mezi 0 a 99

Get-Random -Maximum 100
47

Příklad 3: Získání náhodného celého čísla mezi -100 a 99

Get-Random -Minimum -100 -Maximum 100
56

Příklad 4: Získání náhodného čísla s plovoucí desetinou čárkou

Tento příkaz získá náhodné číslo s plovoucí desetinou čárkou větší nebo rovno 10,7 a menší než 20,92.

Get-Random -Minimum 10.7 -Maximum 20.93
18.08467273887

Příklad 5: Získání náhodného celého čísla z pole

Tento příkaz získá náhodně vybrané číslo ze zadaného pole.

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

Příklad 6: Získání několika náhodných celých čísel z pole

Tento příkaz získá ze pole tři náhodně vybraná čísla v náhodném pořadí.

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

Příklad 7: Randomizace celé kolekce

Tento příkaz vrátí celou kolekci v náhodném pořadí.

Hodnota parametru Count je MaxValue statickou vlastnost celých čísel.

Pokud chcete vrátit celou kolekci v náhodném pořadí, zadejte libovolné číslo, které je větší nebo rovno počtu objektů v kolekci.

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

Příklad 8: Získání náhodné nečíselné hodnoty

Tento příkaz vrátí náhodnou hodnotu z nečíselné kolekce.

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

Příklad 9: Použití parametru SetSeed

Tento příklad ukazuje účinek použití parametru SetSeed.

Protože SetSeed vytváří nenáhodné chování, obvykle se používá pouze k reprodukování výsledků, například při ladění nebo analýze skriptu.

# 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

Příklad 10: Získání náhodných souborů

Tyto příkazy z C: jednotky místního počítače získají náhodně vybraný vzorek 50 souborů.

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

Příklad 11: Roll fair kostka

V tomto příkladu se zobrazí spravedlivé kostky 1200krát a spočítá výsledky. První příkaz For-EachObject opakuje volání Get-Random z předaných čísel (1–6). Výsledky jsou seskupené podle jejich hodnoty s Group-Object a formátovány jako tabulka s 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

Parametry

-Count

Určuje počet náhodných objektů nebo čísel, které se mají vrátit. Výchozí hodnota je 1.

Při použití s InputObject, pokud hodnota Count překročí počet objektů v kolekci, Get-Random vrátí všechny objekty v náhodném pořadí.

Vlastnosti parametru

Typ:Int32
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

RandomListItemParameterSet
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-InputObject

Určuje kolekci objektů. Get-Random získá náhodně vybrané objekty v náhodném pořadí z kolekce až do čísla určeného Počet. Zadejte objekty, proměnnou, která obsahuje objekty, nebo příkaz nebo výraz, který objekty získá. Kolekci objektů můžete také pipetovat do Get-Random.

Vlastnosti parametru

Typ:

Object[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

RandomListItemParameterSet
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Maximum

Určuje maximální hodnotu náhodného čísla. Get-Random vrátí hodnotu, která je menší než maximum (nerovná se). Zadejte celé číslo, číslo s plovoucí desetinnou čárkou s dvojitou přesností nebo objekt, který lze převést na celé číslo nebo dvojité číslo, například číselný řetězec ("100").

Hodnota Maximální musí být větší než (nerovná se) hodnota Minimální. Pokud je hodnota Maximum nebo Minimum číslo s plovoucí desetinou čárkou, Get-Random vrátí náhodně vybrané číslo s plovoucí desetinou čárkou.

Pokud je v 64bitovém počítači hodnota Minimální 32bitové celé číslo, výchozí hodnota Maximum je Int32.MaxValue.

Pokud je hodnota Minimální dvojitá (číslo s plovoucí desetinou čárkou), výchozí hodnota Maximum je Double.MaxValue. V opačném případě je výchozí hodnota Int32.MaxValue.

Vlastnosti parametru

Typ:Object
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

RandomNumberParameterSet
Position:0
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Minimum

Určuje minimální hodnotu náhodného čísla. Zadejte celé číslo, číslo s plovoucí desetinnou čárkou s dvojitou přesností nebo objekt, který lze převést na celé číslo nebo dvojité číslo, například číselný řetězec ("100"). Výchozí hodnota je 0 (nula).

Hodnota Minimální musí být menší než (nerovná se) hodnota Maximum. Pokud je hodnota Maximum nebo Minimum číslo s plovoucí desetinou čárkou, Get-Random vrátí náhodně vybrané číslo s plovoucí desetinou čárkou.

Vlastnosti parametru

Typ:Object
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

RandomNumberParameterSet
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-SetSeed

Určuje počáteční hodnotu generátoru náhodných čísel. Tato počáteční hodnota se používá pro aktuální příkaz a pro všechny následné příkazy Get-Random v aktuální relaci, dokud nepoužijete SetSeed znovu nebo relaci zavřete. Počáteční hodnotu nelze obnovit na výchozí hodnotu.

Parametr SetSeed není povinný. ve výchozím nastavení používá metodu RandomNumberGenerator() k vygenerování počáteční hodnoty. Protože SetSeed vede k nenáhodným chování, obvykle se používá pouze při pokusu o reprodukci chování, například při ladění nebo analýze skriptu, který obsahuje příkazy Get-Random.

Vlastnosti parametru

Typ:Int32
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

Object

Jeden nebo více objektů můžete pipetovat. Get-Random vybere hodnoty náhodně z svislých objektů.

Výstupy

System.Int32, System.Int64, System.Double

Get-Random vrátí celé číslo nebo číslo s plovoucí desetinou čárkou nebo objekt vybraný náhodně ze odeslané kolekce.

Poznámky

Get-Random nastaví výchozí počáteční hodnotu pro každou relaci na základě systémového času při spuštění relace.

Počínaje windows PowerShellem 3.0 Get-Random podporuje 64bitové celá čísla. Ve Windows PowerShellu 2.0 se všechny hodnoty přetypují na System.Int32.