Přeskočit na obsah

Python/Kenjiro995/Náhodná čísla

Z Wikiverzity

Modul Random

[editovat]

Náhodné desetiné číslo mezi 0.0 a 1.0

[editovat]
import random
print(random.random())

Výstup:

0.5796892336927169

Náhodné celé číslo dle zadaného rozsahu

[editovat]

random.randint(start, stop):

import random
print(random.randint(1, 100))

Výstup:

27


random.randrange(start, stop-1):

import random
print(random.randrange(1, 10))

Výstup:

6

Náhodná výběr ze seznamu prvků (čísla nebo text)

[editovat]
import random
a = [1, 2, 3, 4, 5, 6]
print(random.choice(a))

Výstup:

6

Náhodné zamíchání prvků

[editovat]
import random
a = [1, 2, 3, 4, 5, 6]
random.shuffle(a)
print(a)

Výstup:

[6, 2, 1, 3, 5, 4]

Náhodný výběr s váhou pravděpodobnosti a počtem výběrů

[editovat]
import random
a = [1, 2, 3] # random.choise() funguje i s textvou proměnnou a = ["a", "b", "c"] nebo a = "abc"
print(random.choices(a, weights = [10, 1, 1], k = 14)) # položka s číslem 1 má váhu 10 proto se jednička objevuje nejčastěji
# váha (weight) musí mít tolik položek kolik je v populaci a
# počet výběrů k=14 říká že vybere 14 čísel

Výstup:

[1, 1, 1, 1, 3, 1, 2, 1, 1, 1, 1, 2, 3, 1]

Použití

[editovat]

Zkoušení z počítání

[editovat]
import random

a = random.randint(1, 100)
b = random.randint(1, 100)
zprava = str(a) + " + " + str(b) + " = "
cislo = int(input(zprava))
if cislo == a + b:
  print("počítáš správně")
else:
  print("počítáš špatně, správný výsledek je", a + b)

Výstup:

86 + 50 = 1
počítáš špatně, správný výsledek je 136

Házení kostkou

[editovat]
import random

cislo = int(input("Kolikrát chceš hodit kostkou? "))
for i in range(cislo):
  print(random.randint(1, 6))

Výstup:

Kolikrát chceš hodit kostkou? 3
4
3
1


import random

cislo = int(input("Kolikrát chceš hodit kostkou? "))
print(random.choices([1, 2, 3, 4, 5, 6], k = cislo))

Výstup:

Kolikrát chceš hodit kostkou? 5
[4, 1, 1, 6, 1]


import random

cislo = int(input("Kolikrát chceš hodit kostkou? "))
print(random.choices(range(1, 7), k = cislo))

Výstup:

Kolikrát chceš hodit kostkou? 5
[3, 4, 2, 5, 6]


import random

cislo = int(input("Kolikrát chceš hodit kostkou? "))
print(random.choices([1, 2, 3, 4, 5, 6], weights = [1, 1, 1, 1, 1, 10], k = cislo))  # šestka bude padat až 10x častěji

Výstup:

Kolikrát chceš hodit kostkou? 5
[4, 6, 5, 6, 6]

Hádej číslo

[editovat]
import random

print("Budeš hádat číslo od 1 do 6 na které počítač myslí, hraješ třikrát.")
for i in range(3):
  cislo = int(input("Hádej číslo: "))
  a = random.randint(1, 6)
  if cislo == a:
    print("Uhodl si to, myslím na toto číslo", a)
  else:
    print("Neuhodl si, myslím na toto číslo", a)

Výstup:

Budeš hádat číslo od 1 do 6 na které počítač myslí, hraješ třikrát.
Hádej číslo: 1
Neuhodl si, myslím na toto číslo 3
Hádej číslo: 5
Neuhodl si, myslím na toto číslo 3
Hádej číslo: 4
Uhodl si to, myslím na toto číslo 4


Generátor pin kódu (čtyři čísla)

[editovat]
import random
print(random.choices(range(10), k = 4))

Výstup:

[9, 4, 4, 6]


import random

cislo = int(input("Kolik chceš generovat pin kódů? "))
for i in range(cislo):
  print(random.choices(range(10), k = 4))

Výstup:

Kolik chceš generovat pin kódů? 8
[4, 9, 2, 6]
[0, 2, 8, 6]
[1, 6, 5, 1]
[8, 9, 8, 3]
[5, 8, 4, 6]
[2, 4, 8, 4]
[7, 7, 7, 3]
[3, 0, 6, 2]