Поделитесь своими знаниями, ответьте на вопрос:
В двух глобальных переменных one, two находятся два натуральных числа: первое слагаемое и второе слагаемое. Напишите функцию roman(), которая считает их сумму и записывает ее в глобальную переменную three, переводит каждое слагаемое и сумму в римскую запись и печатает их, как показано в примере.Формат вводаone = 5two = 4roman()Формат выводаV + IV = IXвот мой код, но вылазит ошибка - Глобальная переменная three не равна сумме one и twoКак исправить?CONV_TABLE = ((1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'), (100, 'C'), (90, 'XC'), (50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I'))def arab_to_roman(number):if number <= 0:return ''ret = ''for arab, roman in CONV_TABLE:while number >= arab:ret += romannumber -= arabreturn retdef roman_to_arab(txt):txt = txt.upper()ret = 0for arab, roman in CONV_TABLE:while txt.startswith(roman):ret += arabtxt = txt[len(roman):]return retdef roman():global oneglobal twoglobal threethree = '{} + {} = {}'.format(arab_to_roman(one), arab_to_roman(two), arab_to_roman(one + two))print(three)
Задаем вопросы: - Друг живет выше 8-го этажа?
Нет.
После этого ответа число вариантов уменьшилось в два раза, следовательно, информационная неопределенность уменьшилась в два раза. Получен 1 бит информации.
Друг живет выше 4-го этажа?
Да.
Число вариантов уменьшилось еще в два раза, получен еще 1 бит информации.
Друг живет выше 6-го этажа?
Да.
После данного ответа осталось два варианта: друг живет или на 7 этаже, или на 8 этаже. Получен еще 1 бит информации.
Друг живет на 7-м этаже?
Нет.
Все ясно. Друг живет на 8-м этаже.
Каждый ответ уменьшал информационную неопределенность в два раза. Всего было задано 4 вопроса. Получено 4 бита информации. Сообщение о том, что друг живет на 8-м этаже 16-ти этажного дома несет 4 бита информации.