# Pythonin random-moduulin käyttö

Python `random` -moduuli tarjoaa sinulle erilaisia toimintoja **satunnaislukujen generoimiseen** eri muodoissa, kokonaisluvuista liukulukuisiin ja listojen elementtien valintaan.

## Mikä on Pythonin random-moduuli ja mihin sitä voidaan käyttää?

Python `random` -moduuli random on sisäänrakennettu kirjasto, jonka avulla voit luoda satunnaislukuja ja suorittaa satunnaislukuja käyttäviä operaatioita ohjelmissasi. Se sisältää erilaisia funktioita **pseudotodellisten satunnaislukujen luomiseen**, joita voidaan käyttää monissa sovelluksissa simuloinnista pelien kehittämiseen ja salaustehtäviin.

Satunnaismoduulin tärkeä ominaisuus on sen kyky tuottaa toistettavia tuloksia. Asettamalla aloitusarvon tai siemenen satunnaisen generoinnin prosessi voidaan toistaa. Tämä on hyödyllistä testauksessa, kokeissa ja simuloinneissa, joissa tarvitaan yhdenmukaista satunnaista dataa.

## Mitkä ovat satunnaismoduulin toiminnot?

Pythonin random-moduuli sisältää erilaisia menetelmiä **satunnaislukujen tuottamiseen ja käsittelyyn**. Seuraava taulukko sisältää yleiskatsauksen toiminnoista ja niiden ominaisuuksista:

<table>
  <thead>
    <tr>
      <th>Toiminnon nimi</th>
      <th>Selitys</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`seed(a=None, version=2)`</td>
      <td>Määrittää satunnaislukugeneraattorin alkuarvon (siemenen)</td>
    </tr>
    <tr>
      <td>`getstate()`</td>
      <td>Palauttaa satunnaislukugeneraattorin nykyisen tilan objektina</td>
    </tr>
    <tr>
      <td>`setstate(state)`</td>
      <td>Nollaa satunnaislukugeneraattorin tilan tilaobjektin avulla</td>
    </tr>
    <tr>
      <td>`getrandbits(k)`</td>
      <td>Palauttaa k-bittisen kokonaisluvun</td>
    </tr>
    <tr>
      <td>`randrange(start, stop, step)`</td>
      <td>Luo satunnaisen kokonaisluvun määritetystä alueesta</td>
    </tr>
    <tr>
      <td>`randint(a, b)`</td>
      <td>Palauttaa satunnaisen kokonaisluvun määritellyltä alueelta</td>
    </tr>
    <tr>
      <td>`choice(seq)`</td>
      <td>Palauttaa satunnaisen elementin annetusta sekvenssistä</td>
    </tr>
    <tr>
      <td>`choices(population, weights=None, *, cum_weights=None, k=1)`</td>
      <td>Luo luettelon, jossa on k satunnaisesti valittua elementtiä populaatiosta; todennäköisyyksien määrittäminen on valinnaista</td>
    </tr>
    <tr>
      <td>`sample(k, population)`</td>
      <td>Luo luettelon, jossa on k satunnaisesti valittua elementtiä populaatiosta, ilman kaksoiskappaleita</td>
    </tr>
    <tr>
      <td>`shuffle(x)`</td>
      <td>Sekoita luettelon elementit satunnaisessa järjestyksessä.</td>
    </tr>
    <tr>
      <td>`random()`</td>
      <td>Palauttaa satunnaisen liukuluvun välillä 0 ja 1.</td>
    </tr>
    <tr>
      <td>`uniform(a, b)`</td>
      <td>Palauttaa satunnaisen liukuluvun määritellyllä alueella, mukaan lukien raja-arvot</td>
    </tr>
    <tr>
      <td>`triangular(low, high, mode)`</td>
      <td>Luo satunnaisen liukuluvun kolmiomaisessa jakaumassa.</td>
    </tr>
    <tr>
      <td>`betavariate(alpha, beta)`</td>
      <td>Palauttaa satunnaisen liukuluvun beta-jakaumasta.</td>
    </tr>
    <tr>
      <td>`expovariate(lambd)`</td>
      <td>Palauttaa satunnaisen liukuluvun eksponentiaalisesta jakaumasta.</td>
    </tr>
    <tr>
      <td>`gammavariate(alpha, beta)`</td>
      <td>Luo satunnaisen liukuluvun gammajakaumasta.</td>
    </tr>
    <tr>
      <td>`gauss(mu, sigma)`</td>
      <td>Palauttaa satunnaisen liukuluvun Gaussin jakaumasta.</td>
    </tr>
    <tr>
      <td>`lognormvariate(mu, sigma)`</td>
      <td>Luo satunnaisen liukuluvun logaritmisesta normaalijakaumasta.</td>
    </tr>
    <tr>
      <td>`normalvariate(mu, sigma)`</td>
      <td>Palauttaa satunnaisen liukuluvun normaalijakaumasta.</td>
    </tr>
    <tr>
      <td>`vonmisesvariate(mu, kappa)`</td>
      <td>Palauttaa satunnaisen liukuluvun von Misesin jakauman tai pyöreän normaalijakauman perusteella.</td>
    </tr>
    <tr>
      <td>`paretovariate(alpha)`</td>
      <td>Palauttaa satunnaisen liukuluvun Pareto-jakaumasta.</td>
    </tr>
    <tr>
      <td>`weibullvariate(alpha, beta)`</td>
      <td>Palauttaa satunnaisen liukuluvun, joka noudattaa Weibull-jakaumaa.</td>
    </tr>
  </tbody>
</table>

## Kuinka valita elementtejä satunnaisesti luettelosta

Jos haluat valita useita satunnaisia elementtejä luettelosta, voit käyttää Pythonin random-moduulin funktiota `choices(seq, k=n)`, jossa `n` on haluttujen satunnaisten elementtien lukumäärä.

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

Tässä tapauksessa käytämme funktiota `choices()` valitaksemme kolme satunnaista elementtiä `my_list`:stä. Tulokset palautetaan kolmen satunnaisen elementin luettelona.

## Kuinka sekoittaa lista

`shuffle()` -funktio järjestää Python-listan elementit satunnaisessa järjestyksessä.

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

On syytä muistaa, että `shuffle()` muuttaa itse luetteloa eikä palauta uutta luetteloa. Käytön jälkeen `shuffle()` alkuperäinen luettelo on satunnaisessa järjestyksessä.

## Kuinka asettaa siemenarvo

Kun käytät Pythonin random-moduulin `random.seed()` **tietyn siemenarvon asettamiseen**, se alustaa satunnaislukugeneraattorin tuottamaan satunnaislukuja tämän siemenarvon avulla. Jos siis asetat myöhemmin saman siemenarvon uudelleen, sovelluksessasi syntyy identtinen satunnaislukujono.

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

Kun alkuluku on asetettu, se tuottaa ja tulostaa satunnaislukuja. Alkuluvun palauttaminen **samaan arvoon** tuottaa saman satunnaislukusarjan uudelleen. Tässä esimerkissä alkuluku on 42. Niin kauan kuin tämä alkuluku pysyy vakiona, satunnaislukuja voidaan toistaa johdonmukaisesti.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/pythonin-satunnaismoduuli/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/pythonin-satunnaismoduuli/) for AI/LLM consumption.