Подібні цифри
Два прямокутника схожі, якщо співвідношення їх сторін однакові.
Розглянемо ці два прямокутники; прямокутник у 5 ліній у висоту та 11 символів у ширину:
===========
===========
===========
===========
===========
і прямокутник у 10 ліній заввишки та 22 символи в ширину:
======================
======================
======================
======================
======================
======================
======================
======================
======================
======================
Ці форми схожі, оскільки співвідношення їх сторін однакові. Формально сказати (при цьому є найкоротшою стороною, а - найдовшою стороною):
Ви також можете зробити:
Змагання
Напишіть програму або функцію, яка займає "головний" прямокутник і деякі "інші" прямокутники та друкує, які з "інших" схожі на "основні".
Вхід
Форма та перелік фігур. Кожна форма складається з 2 ненульових натуральних чисел, які позначають ширину і висоту прямокутника. Наприклад, це:
(4,2), (3,9)
позначає два прямокутники, 4x2 та 3x9. Точний формат вводу, можливо, не бажає.
Вихід
Показники "інших" фігур, схожі на "основні". Ви можете вибрати, чи базуються показники на 0 або 1, а також точний формат і порядок виводу.
Зразок програми
На Python:
main = eval(raw_input()) # The main rectangle.
rects = eval(raw_input()) # The list of rectangles.
similar = set()
for i, rect in enumerate(rects):
if max(main)*min(rect) == min(main)*max(rect): # Cross-multiply
# They are similar.
similar.add(i)
print similar
Зразок введення та виведення
Вхід:
(1, 2)
[(1, 2), (2, 4)]
Вихід:
set([0, 1])
Вхід:
(1, 2)
[(1, 9), (2, 5), (16, 8)]
Вихід:
set([2])
Перемога
Це код-гольф, тому виграє найкоротше подання.
Примітки
- Це само собою зрозуміло, але стандартні лазівки заборонені .
- Ніяких вбудованих приміщень для розміщення подібних фігур не можна використовувати. (Я навіть не знаю, чи це існує, але я не здивуюсь!)
[(1,2), (2,4), (1,9), (2,5), (16,8)]
, дозволено лише [0,1,4]
та [1,2,5]
дозволено, чи ми можемо також вивести [1,1,0,0,1]
чи [(1,2), (2,4), (16,8)]
?
[1.0 2.0]
прийнятний формат введення?