# Kaip naudoti Python atsitiktinių skaičių modulį

Python `random` modulis siūlo įvairias funkcijas **atsitiktinių skaičių generavimui** įvairiais formatais, pradedant sveikaisiais skaičiais, baigiant slankiojo kablelio skaičiais ir elementų pasirinkimu iš sąrašų.

## Kas yra Python atsitiktinių skaičių modulis ir kam jis gali būti naudojamas?

Python `random` modulis random yra įdiegta biblioteka, leidžianti generuoti atsitiktinius skaičius ir atlikti atsitiktinumo pagrįstas operacijas jūsų programose. Ji apima įvairias funkcijas, skirtas **generuoti pseudorandomuosius skaičius**, kurie gali būti naudojami daugelyje programų, nuo modeliavimo iki žaidimų kūrimo ir kriptografinių užduočių.

Svarbi atsitiktinio modulio savybė yra jo gebėjimas pateikti atkartojamus rezultatus. Nustačius pradinę vertę arba sėklą, atsitiktinio generavimo procesą galima atkartoti. Tai naudinga bandymams, eksperimentams ir modeliavimui, kuriuose reikalingi nuoseklūs atsitiktiniai duomenys.

## Kokios yra atsitiktinio modulio funkcijos?

Python random modulis turi įvairius metodus, skirtus **atsitiktinių skaičių generavimui ir apdorojimui**. Toliau pateiktoje lentelėje pateikta funkcijų ir jų savybių apžvalga:

<table>
  <thead>
    <tr>
      <th>Funkcijos pavadinimas</th>
      <th>Paaiškinimas</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Apibrėžia atsitiktinių skaičių generatoriaus pradinę vertę (sėklą)</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Grąžina atsitiktinių skaičių generatoriaus dabartinę būseną kaip objektą</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Atkuria atsitiktinių skaičių generatoriaus būseną naudojant būsenos objektą</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Grąžina sveiką skaičių su k bitais</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Sukuria atsitiktinį sveiką skaičių iš nurodyto intervalo.</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Grąžina atsitiktinį sveiką skaičių iš nurodyto intervalo</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Grąžina atsitiktinį elementą iš nurodytos sekos</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Sukuria sąrašą su k atsitiktinai atrinktais elementais iš populiacijos; galima nurodyti tikimybes.</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Sukuria sąrašą su k atsitiktinai atrinktais elementais iš populiacijos, be pasikartojimų</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Sąrašo elementus sumaišo atsitiktine tvarka.</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Grąžina atsitiktinį skaičių su slankiuoju kableliu nuo 0 iki 1.</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Grąžina atsitiktinį skaičių su slankiuoju kableliu nurodytame intervale, įskaitant ribines vertes.</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Sukuria atsitiktinį skaičių su slankiuoju kableliu trikampio pasiskirstymo intervale.</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Grąžina atsitiktinį kintamojo skaičiaus skaičių iš beta pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Grąžina atsitiktinį skaičių su slankiuoju kableliu iš eksponentinio pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Sukuria atsitiktinį kintamojo tikslumo skaičių iš gama pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Grąžina atsitiktinį skaičių su slankiuoju kableliu iš Gauso pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Sukuria atsitiktinį kintamojo taško skaičių iš logaritminio normaliojo pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Grąžina atsitiktinį slankiojo kablelio skaičių iš normaliojo pasiskirstymo.</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Grąžina atsitiktinį skaičių su von Mises pasiskirstymu arba apskritiniu normaliniu pasiskirstymu.</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Grąžina atsitiktinį skaičių su Pareto pasiskirstymu.</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Grąžina atsitiktinį kintamojo tikslumo skaičių su Weibull pasiskirstymu.</td>
    </tr>
  </tbody>
</table>

## Kaip atsitiktinai pasirinkti elementus iš sąrašo

Jei norite iš sąrašo atrinkti kelis atsitiktinius elementus, galite naudoti Python atsitiktinių skaičių modulio funkciją `choices(seq, k=n)`, kur `n` yra norimų atsitiktinių elementų skaičius.

```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)
```

Šiuo atveju naudojame funkciją `choices()`, kad atrinktume tris atsitiktinius elementus iš `my_list`. Rezultatai grąžinami kaip trijų atsitiktinių elementų sąrašas.

## Kaip sumaišyti sąrašą

Funkcija `shuffle()` išdėsto Python sąrašo elementus atsitiktine tvarka.

```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']
```

Reikėtų nepamiršti, kad `shuffle()` keičia patį sąrašą ir negrąžina naujo. Po `shuffle()` naudojimo pradinis sąrašas bus atsitiktine tvarka.

## Kaip nustatyti pradinę vertę

Kai naudojate Python random modulio funkciją `random.seed()`, kad **nustatytumėte konkretų sėklos vertę**, ji inicijuoja atsitiktinių skaičių generatorių, kad šis generuotų atsitiktinius skaičius naudodamas šią sėklą. Todėl, jei vėliau vėl nustatysite tą pačią sėklos vertę, jūsų programoje bus generuojama identiška atsitiktinių skaičių seka.

```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)
```

Nustačius pradinę vertę, generuojami ir išvedami atsitiktiniai skaičiai. Nustačius tą **pačią** pradinę **vertę**, vėl generuojama ta pati atsitiktinių skaičių seka. Šiame pavyzdyje pradinė vertė yra 42. Kol ši pradinė vertė išlieka pastovi, atsitiktiniai skaičiai gali būti nuosekliai atkartojami.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-atsitiktiniu-skaiciu-modulis/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-atsitiktiniu-skaiciu-modulis/) for AI/LLM consumption.