hit tracker
Jak możemy Ci pomóc?

Convert Integer To Roman Number Python

Convert Integer To Roman Number Python

Witaj! Zaczynamy przygodę z zamianą liczb całkowitych na rzymskie w Pythonie. Wyobraź sobie, że jesteś archeologiem. Odkrywasz starożytny artefakt.

Znajdujesz na nim liczbę zapisaną systemem dziesiętnym. Musisz ją przetłumaczyć na rzymski, by zrozumieć jego znaczenie. Gotowy?

Koncepcja i narzędzia

System rzymski używa liter. Te litery reprezentują wartości. I to 1, V to 5, X to 10, L to 50, C to 100, D to 500, a M to 1000. Pomyśl o nich jak o cegiełkach.

Budujemy liczbę rzymską, łącząc te cegiełki. Czasami dodajemy. Czasami odejmujemy. To tak, jak budowanie z klocków Lego.

Odejmowanie ma miejsce, gdy mniejsza wartość jest przed większą. Na przykład, IV to 4 (5 - 1). IX to 9 (10 - 1). Pamiętaj o tym.

W Pythonie użyjemy słownika (dictionary). Słownik przypisze wartości rzymskie do liczb. To nasz klucz do tłumaczenia. Myśl o tym jak o tabeli konwersji.

Słownik z wartościami

Oto nasz słownik. Zawiera on najważniejsze kombinacje.

roman_map = { 1: 'I', 4: 'IV', 5: 'V', 9: 'IX', 10: 'X', 40: 'XL', 50: 'L', 90: 'XC', 100: 'C', 400: 'CD', 500: 'D', 900: 'CM', 1000: 'M'}

Widzisz te liczby? Są one specjalnie dobrane. Umożliwiają nam optymalne tłumaczenie.

Algorytm Krok po Kroku

Najpierw potrzebujemy funkcji. Nazwiemy ją int_to_roman. Przyjmuje liczbę całkowitą jako argument. To nasz tłumacz.

Następnie tworzymy zmienną. Nazwiemy ją roman_num. Jest to pusty łańcuch znaków. Tutaj będziemy budować liczbę rzymską.

Teraz iterujemy po słowniku roman_map. Ale uwaga! Musimy iterować w odwrotnej kolejności. Od największych wartości do najmniejszych. To jest kluczowe. Inaczej wynik będzie niepoprawny.

Dla każdej wartości sprawdzamy, czy nasza liczba (argument funkcji) jest większa lub równa danej wartości ze słownika. Jeśli tak, dodajemy odpowiedni symbol rzymski do roman_num. Odejmujemy tę wartość od naszej liczby.

Powtarzamy ten proces. Aż nasza liczba stanie się zerem. Wtedy roman_num będzie zawierać kompletną liczbę rzymską. Zwracamy ją.

Przykład w kodzie

def int_to_roman(num):
    roman_map = { 1: 'I', 4: 'IV', 5: 'V', 9: 'IX', 10: 'X', 40: 'XL', 50: 'L', 90: 'XC', 100: 'C', 400: 'CD', 500: 'D', 900: 'CM', 1000: 'M'}
    roman_num = ''
    i = 12
    while num != 0:
        if list(roman_map.keys())[i] <= num:
            roman_num += list(roman_map.values())[i]
            num -= list(roman_map.keys())[i]
        else:
            i -= 1
    return roman_num

Spójrz na ten kod. Widzisz pętlę while? Iteruje ona, dopóki num nie będzie równe zero.

Widzisz instrukcję if? Sprawdza, czy możemy użyć danej wartości rzymskiej. Jeśli tak, dodajemy ją do roman_num.

Przykłady Użycia

Spróbujmy. Co otrzymamy dla liczby 1984?

print(int_to_roman(1984)) # Wynik: MCMLXXXIV

A co z 3999? To największa liczba, jaką możemy zapisać standardowym systemem rzymskim.

print(int_to_roman(3999)) # Wynik: MMMCMXCIX

Działa! Pamiętaj, że system rzymski ma swoje ograniczenia. Nie możemy zapisać liczb ujemnych. Ani liczb większych od 3999 (bez użycia rozszerzeń).

Wizualizacja procesu

Wyobraź sobie linię liczbową. Na tej linii zaznaczone są wartości rzymskie. Zaczynasz od największej wartości (1000). Sprawdzasz, ile razy możesz ją odjąć od swojej liczby. Potem przechodzisz do mniejszej wartości (900). I tak dalej. Aż dojdziesz do zera.

Możesz też wyobrazić sobie automat do wydawania reszty. Automat ma nominały (1000, 900, 500, ...). Chcesz wydać resztę (naszą liczbę). Automat wydaje największy możliwy nominał. Potem kolejny. I tak dalej. Aż wyda całą resztę.

Używaj tych wizualizacji. Pomogą Ci zrozumieć algorytm.

Podsumowanie

Udało się! Znasz już podstawy zamiany liczb całkowitych na rzymskie w Pythonie. Używasz słownika. Iterujesz po nim w odwrotnej kolejności. Sprawdzasz, czy możesz odjąć daną wartość. Dodajesz odpowiedni symbol rzymski.

Pamiętaj o przykładach. O wizualizacjach. Ćwicz. Im więcej będziesz ćwiczyć, tym lepiej zrozumiesz ten algorytm. Teraz śmiało, odkrywaj świat starożytnych liczb!

Gratulacje! Jesteś prawdziwym archeologiem cyfrowym.

Converting Integers to Roman Numerals in Python - YouTube Convert Integer To Roman Number Python
Hania I Zosia Podzielily Miedzy Siebie
Acteur Dans Charlie Et La Chocolaterie