Они "одинаковые"? кто решит тот лучший 💪
Для двух массивов
a
и
b
напишите функцию
comp(a, b)
(или
compSame(a, b)
), которая проверяет, есть ли в этих массивах "одинаковые" элементы с одинаковой кратностью (кратность члена - это количество раз, которое он встречается). В данном случае "одинаковые" означает, что элементы в
b
- это элементы в квадрате
a
, независимо от порядка.
Examples:
Допустимые массивы
a = [121, 144, 19, 161, 19, 144, 19, 11] b = [121, 14641, 20736, 361, 25921, 361, 20736, 361]
comp(a, b)
возвращает true, потому что в
b
121 - квадрат 11, 14641 - квадрат 121, 20736 - квадрат 144, 361 - квадрат 19, 25921 - квадрат 161, и так далее. Это становится очевидным, если записать элементы
b
в терминах квадратов:
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19]
Некорректные массивыЕсли, например, мы изменим первое число на что-то другое,
comp
больше не будет возвращать true:
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [132, 14641, 20736, 361, 25921, 361, 20736, 361]
comp(a,b)
возвращает false, потому что в
b
132 не является квадратом какого-либо числа из
a
.
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 36100, 25921, 361, 20736, 361]
comp(a,b)
возвращает false, потому что в
b
36100 не является квадратом какого-либо числа из
a
.
Примечания
🟡a
или
b
могут быть
[]
или
{}
(все языки, кроме R, Shell).
🟡a
или
b
могут быть
nil
или
null
или
None
или
nothing
(кроме C++, COBOL, Crystal, D, Dart, Elixir, Fortran, F#, Haskell, Nim, OCaml, Pascal, Perl, PowerShell, Prolog, PureScript, R, Racket, Rust, Shell, Swift).
🟡
Если
a
или
b
равны
nil
(или
null
, или
None
, в зависимости от языка), проблема не имеет смысла, поэтому возвращается false.
#6kyu🔗 Перейти к задаче@haskell_tg