Rozdział 5 · Pobawmy się liczbami!

gcd, lcm, czynnikowy, comb, perm

Pięć funkcji do pracy z liczbami całkowitymi i liczenia wariantów – z rzeczywistymi problemami dla każdej z nich.

gcd() — największy wspólny dzielnik

Największy wspólny dzielnik (GCF) dwóch liczb jest największą liczbą, przez którą obie są podzielne bez reszty. Klasyczne zastosowanie – redukcja ułamków:

gcd.py
import math

print(math.gcd(12, 18))   # 6 — i 12, i 18 dzielą się przez 6 bez reszty

# zredukować ułamek 12/18:
chislitel, znamenatel = 12, 18
nod = math.gcd(chislitel, znamenatel)
print(f"{chislitel // nod}/{znamenatel // nod}")   #2/3 to ten sam ułamek, ale w najprostszej formie

lcm() — najmniejsza wspólna wielokrotność

Najniższy wspólny mnożnik (LCM) to najmniejsza liczba podzielna przez obie liczby jednocześnie. Przyda się na przykład zrozumienie, kiedy dwa powtarzające się zdarzenia znów się pokrywają:

lcm.py
import math

print(math.lcm(4, 6))   #12 – Autobus nr 1 kursuje co 4 minuty, autobus nr 2 co 6 minut
                        # obaj będą na przystanku o tej samej porze co 12 minut

factorial() — liczyć permutacje

Factorial n! jest iloczynem wszystkich liczb całkowitych od 1 do n. Odpowiada na pytanie „na ile sposobów można to zorganizować n różne obiekty w kolejności”

factorial.py
import math

print(math.factorial(5))   #120 – 5 książek na półce można ułożyć na 120 różnych sposobów

comb() oraz perm() – Wybór i porządek

comb(n, k) — ile sposobów wyboru k przedmioty z njeśli kolejność wyboru nie jest ważne. perm(n, k) jest takie samo, ale gdy kolejność ważne.

comb_perm.py
import math

# ile różnych trójek liczb można wybrać z 49 w loterii, kolejność nie ma znaczenia:
print(math.comb(49, 3))   # 18424

# ile różnych podium (1., 2., 3.) może mieć 10 zawodników, kolejność jest ważna:
print(math.perm(10, 3))   # 720
perm() zawsze większy lub równy comb()
Za to samo n oraz k perm() liczy KAŻDE zamówienie osobno, oraz comb() są tylko unikalnymi zestawami. Jeśli nie jesteś pewien, którą funkcję użyć, zadaj sobie pytanie: „Czy kolejność jest ważna?” perm()nie ma → comb().
Praktyka: gcd, lcm, silnia, comb, perm
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →