2.5 p XOR (p div 2) w pliku przykładowym

Matura maj 2023 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 2.5 (3 pkt): dla każdej liczby \( p \) z pliku wynik \( p \text{ XOR } (p \text{ div } 2) \) w systemie binarnym (to tzw. kod Graya liczby). Arkusz daje odpowiedź dla pliku przykładowego w pliku `odp_bin_przyklad.txt`, więc program porównuje z nim swoje wyniki.

with open("bin_przyklad.txt") as f:
    numbers = [line.strip() for line in f]  # zapisy binarne jako napisy

# 2.5 p XOR (p div 2): operator ^ działa na bitach, bin(x)[2:] to zapis binarny bez "0b"
codes = []
for s in numbers:
    p = int(s, 2)
    codes.append(bin(p ^ (p // 2))[2:])

with open("odp_bin_przyklad.txt") as f:
    expected = [line.strip() for line in f]
print(codes[:5])
print("zgodne z odp_bin_przyklad.txt:", codes == expected)

Ł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.