tgoop.com/haskell_tg/25
Create:
Last Update:
Last Update:
Они "одинаковые"?
Для двух массивов 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