# Kā lietot Python random moduli

Python `random` modulis piedāvā dažādas funkcijas, lai **ģenerētu nejaušus skaitļus** dažādos formātos, sākot no veseliem skaitļiem līdz peldošā punkta skaitļiem un elementu atlasīšanai no sarakstiem.

## Kas ir Python random modulis un kā to var izmantot?

Python `random` modulis random ir iebūvēta bibliotēka, kas ļauj ģenerēt nejaušus skaitļus un veikt nejaušības balstītas operācijas jūsu programmās. Tas ietver dažādas funkcijas **pseidonnejaušu skaitļu ģenerēšanai**, kurus var izmantot daudzās lietojumprogrammās, sākot no simulācijas līdz spēļu izstrādei un kriptogrāfiskām uzdevumiem.

Svarīga nejaušības moduļa īpašība ir tā spēja nodrošināt reproducējamus rezultātus. Nosakot sākuma vērtību vai sēklu, nejaušības ģenerēšanas procesu var reproducēt. Tas ir izdevīgi testēšanai, eksperimentiem un simulācijām, kurām nepieciešami konsekventi nejaušības dati.

## Kādas funkcijas ir random modulī?

Python random modulis satur dažādas metodes **nejaušu skaitļu ģenerēšanai un apstrādei**. Turpmākajā tabulā sniegts pārskats par funkcijām un to īpašībām:

<table>
  <thead>
    <tr>
      <th>Funkcijas nosaukums</th>
      <th>Paskaidrojums</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Nosaka sākotnējo vērtību (sēklu) nejaušā skaitļa ģeneratoram</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Atgriež nejaušā skaitļa ģeneratora pašreizējo stāvokli kā objektu</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Atsāk nejaušu skaitļu ģeneratora stāvokli, izmantojot stāvokļa objektu</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Atgriež veselu skaitli ar k bitiem</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Izveido nejaušu veselu skaitli no norādītā diapazona</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Atgriež nejaušu veselo skaitli no norādītā diapazona</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Atgriež nejaušu elementu no dotās secības</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Izveido sarakstu ar k nejauši izvēlētiem elementiem no kopuma; iespējams norādīt varbūtības</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Izveido sarakstu ar k nejauši izvēlētiem elementiem no populācijas, bez dublikātiem</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Sakārto saraksta elementus nejaušā secībā</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli starp 0 un 1</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli norādītajā diapazonā, ieskaitot robežvērtības</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Izveido nejaušu peldošā punkta skaitli trīsstūrveida sadales diapazonā</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli no beta sadales.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli no eksponenciālās sadales.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Izveido nejaušu peldošā punkta skaitli no gamma sadales.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli no Gausa sadales.</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Izveido nejaušu peldošā punkta skaitli no logaritmiskā normālā sadalījuma.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli no normālā sadalījuma.</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli ar von Mises sadalījumu vai cirkulāro normālo sadalījumu</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli ar Pareto sadalījumu</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Atgriež nejaušu peldošā punkta skaitli ar Veibula sadalījumu</td>
    </tr>
  </tbody>
</table>

## Kā izvēlēties elementus no saraksta pēc nejaušības principa

Ja vēlaties izvēlēties vairākus nejaušus elementus no saraksta, varat izmantot funkciju `choices(seq, k=n)` no Python random moduļa, kur `n` ir vēlamo nejaušo elementu skaits.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_elements)
```

Šajā gadījumā mēs izmantojam funkciju `choices()`, lai izvēlētos trīs nejaušus elementus no `my_list`. Rezultāti tiek atgriezti kā trīs nejaušu elementu saraksts.

## Kā sajaukt sarakstu

`shuffle()` funkcija sakārto Python saraksta elementus nejaušā secībā.

```python
import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
```

Jāatceras, ka `shuffle()` maina pašu sarakstu un neatgriež jaunu. Pēc `shuffle()` izmantošanas sākotnējais saraksts būs nejaušā secībā.

## Kā iestatīt sēklas vērtību

Kad izmantojat Python random moduļa `random.seed()`, lai **iestatītu konkrētu sēklas vērtību**, tas inicializē nejaušu skaitļu ģeneratoru, lai radītu nejaušus skaitļus, izmantojot šo sēklu. Tāpēc, ja vēlāk atkārtoti iestatīsiet to pašu sēklas vērtību, jūsu lietojumprogrammā tiks ģenerēta identiska nejaušu skaitļu secība.

```python
import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
```

Pēc sēklas vērtības iestatīšanas tiek ģenerēti un izvadīti nejauši skaitļi. Sēklas atiestatīšana uz to **pašu vērtību** izraisa to pašu nejaušo skaitļu secības atkārtotu ģenerēšanu. Šajā piemērā sēklas vērtība ir 42. Kamēr šī sēkla paliek nemainīga, nejaušos skaitļus var konsekventi atkārtot.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-random-modulis/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-random-modulis/) for AI/LLM consumption.