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:
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ą:
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”
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.
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
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().