Wprowadzenie
Dlaczego te algorytmy są ważne na maturze?
1. Sprawdzanie, czy liczba jest pierwsza
Algorytm sprawdzania liczby pierwszej
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# Przykład użycia
print(is_prime(17)) # Wynik: True
print(is_prime(15)) # Wynik: FalseAlgorytm sprawdza, czy liczba n jest podzielna przez jakiekolwiek liczby od 2 do pierwiastka kwadratowego z n. Jeśli tak, liczba nie jest pierwsza. Optymalizacja z pierwiastkiem zmniejsza czas obliczeń.
2. Największy wspólny dzielnik (NWD)
Algorytm NWD (algorytm Euklidesa)
def nwd(a, b):
while b:
a, b = b, a % b
return a
# Przykład użycia
print(nwd(48, 18)) # Wynik: 6Algorytm Euklidesa znajduje największy wspólny dzielnik dwóch liczb poprzez iteracyjne dzielenie i zamianę wartości. To szybka metoda obliczeniowa, często stosowana na maturze.
3. Najmniejsza wspólna wielokrotność (NWW)
Obliczanie NWW przez NWD
def nwd(a, b):
while b:
a, b = b, a % b
return a
def nww(a, b):
return (a * b) // nwd(a, b)
# Przykład użycia
print(nww(12, 18)) # Wynik: 36Uwaga: Dzielenie całkowite (//) zapewnia, że wynik jest liczbą całkowitą. NWW można obliczyć za pomocą wzoru: NWW(a, b) = (a * b) / NWD(a, b)
4. Konwersja między systemami liczbowymi
Konwersja z systemu dziesiętnego na binarny
def decimal_to_binary(n):
if n == 0:
return "0"
binary = ""
while n > 0:
binary = str(n % 2) + binary
n //= 2
return binary
# Przykład użycia
print(decimal_to_binary(13)) # Wynik: 1101Python ma wbudowaną funkcję bin(), ale na maturze warto znać algorytm ręczny.
Konwersja z binarnego na dziesiętny
def binary_to_decimal(binary):
decimal = 0
power = 0
for digit in reversed(binary):
decimal += int(digit) * (2 ** power)
power += 1
return decimal
# Przykład użycia
print(binary_to_decimal("1101")) # Wynik: 13Ręczne przeliczanie binarnych liczb na dziesiętne ułatwia zrozumienie algorytmów.
Konwersja na system szesnastkowy
def decimal_to_hex(n):
if n == 0:
return "0"
hex_digits = "0123456789ABCDEF"
result = ""
while n > 0:
result = hex_digits[n % 16] + result
n //= 16
return result
# Przykład użycia
print(decimal_to_hex(255)) # Wynik: FFPython ma wbudowaną funkcję hex(), ale na maturze warto znać algorytm ręczny.
Jak ćwiczyć te algorytmy przed maturą?
- Rozwiązuj arkusze maturalne – CKE publikuje zadania z poprzednich lat, które często zawierają liczby pierwsze, NWD, NWW lub konwersję systemów.
- Korzystaj z platform edukacyjnych – Strony takie jak Szachy Informatyczne czy Codeforces oferują zadania matematyczno-programistyczne.
- Ćwicz pisanie kodu na papierze – Na maturze możesz nie mieć dostępu do komputera, więc warto ćwiczyć ręczne kodowanie.
- Skorzystaj z korepetycji – Na prokorepetycje.pl znajdziesz doświadczonych nauczycieli, którzy pomogą Ci opanować algorytmy i przygotować się do matury.
Podsumowanie
Podoba Ci się ten artykuł?
To tylko wycinek wiedzy! Na naszych korepetycjach omawiamy te tematy jeszcze dokładniej. Zapisz się na lekcję próbną i zdaj egzamin na 100%.
Umów darmową konsultację