3.2 a) Punkty wewnątrz kwadratu
Matura maj 2025 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 3.2 a) (2 pkt): położenie po każdym ruchu to suma dotychczasowych przesunięć. Liczymy punkty leżące **wewnątrz** kwadratu (0, 0)-(5000, 5000), więc nierówności ostre: punkty na krawędziach się nie liczą. Dla pliku przykładowego: 2.
moves = []
with open("dron_przyklad.txt") as f:
for line in f:
a, b = line.split()
moves.append((int(a), int(b)))
def gcd(a, b):
# algorytm Euklidesa; gcd(a, 0) = a, jak w uwadze do zadania
while b > 0:
a, b = b, a % b
return a
# 3.1 wartości bezwzględne: ruch w dół ma ujemne B
count = sum(1 for a, b in moves if gcd(abs(a), abs(b)) > 1)
# 3.2 punkty po kolejnych ruchach: sumy przesunięć
points = []
x = y = 0
for a, b in moves:
x, y = x + a, y + b
points.append((x, y))
inside = sum(1 for x, y in points if 0 < x < 5000 and 0 < y < 5000)
print("3.1", count)
print("3.2 a)", inside)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.