Palrom
Вот тут вроде как решили вашу задачу:
https://qna.habr.com/q/733429
Не, я вот взял его решение оттуда, подставил туда перевёрнутые данные, выдало ерунду
(немножко принты его поменял тоже, так как он тоже такой слабенький, не может вывод прилично написать, чтобы понятно всё было)
#!/usr/bin/env python3
dann = [
(89, 20, 41, 1, 11),
(11, 1, 1, 1, 1),
(41, 20, 89, 2, 3)
]
def round_up(v, d):
result = v // d + (1 if v % d else 0)
return result
def find(room_1, max_level, room_old, p_old, level_old):
count_room_for_level = 0
# Определим количество этажей на этаже
if max_level == 1 and p_old == 1:
return 1, 1
for count_room_for_level in range(40):
if ((level_old - 1) * count_room_for_level) * p_old < \
room_old < (count_room_for_level * level_old) * p_old:
#print(count_room_for_level)
break
else:
return -1
# Определим возможный подъезд
p_new = round_up(room_1, (max_level * count_room_for_level))
# Этаж
level_new = round_up(room_1, count_room_for_level) % max_level
#print(p_new, level_new)
return p_new, level_new
#print(list(find(*v) for v in dann))
for i in dann:
print(i, '->', find(*i))
Выводит
[guest@localhost domkv]$ ./domkv1.py
(89, 20, 41, 1, 11) -> (2, 3)
(11, 1, 1, 1, 1) -> (1, 1)
(41, 20, 89, 2, 3) -> (1, 3)
[guest@localhost domkv]$
А должно для 41 20 89 2 3 выводить 1 11, как указано в задаче изначальной в виде примера входных и выходных данных.
Понимаешь, это такая туфта с секретом.
Palrom
Те кто придумывают подобные задачи, видимо настолько преисполнились, что даже правдоподобную жизненную ситуацию под своё это неравенство подогнать не смогли, где это могло бы пригодиться.
Не, такие задачи маскируют всякие области, где это может быть нужно. Например, криптоанализ: там бывает, что поступают шифротексты, зашифрованные известным алгоритмом, а нужно найти ключ шифрования, и по битам в этом шифротексте методом построения гипотез проверяют типа “а там могла быть такая-то буква в ключе или не могло её там быть; и если она там могла быть, то с какой вероятностью она там была и выше ли эта вероятность, чем вероятность того, что там этой буквы не было”. Ну, вот таким макаром там ковыряют эти шифры разные, так вскрывают всякую хрень в итоге. Или же вирусная аналитика: там тоже приходит какой-то вирус и нужно понять, из какого примерно кода он был скомпилирован, и происходит обратная разработка (reverse engineering), и для этого тоже надо строить гипотезы, что-то там определять наугад и так далее.
Но вот эта задача - это просто какая-то брутфорсная задача, которая находит ни пойми что в ни пойми чём, и зачем это всё делать, вообще не понятно. Тратить время на эту херню. А зачем? Она не учит ничему.