В New Modern Times , когда Чарли Чаплин сталкивается с компьютером, он работает в сортировочном дворе в качестве проверяющего, чтобы определить, правильно ли рабочие сортируют предметы. Предметы, о которых идет речь, представляют собой пакеты из мрамора. Пакеты с нечетным количеством шариков укладываются в красную корзину, а пакеты с четным количеством шариков укладываются в синюю корзину.
Предполагается, что Чарли Чаплин пробьет программу , которая проверит наличие каких-либо аномалий в процедуре сортировки. Мак Суэйн, его непосредственный босс, делится алгоритмом, который ему нужен для кодирования.
Алгоритм
L = List of Marble packets that's already sorted
L_ODD = List of packets with Odd Number of Marbles
L_EVEN = List of packets with Even Number of Marbles
Check_Digit = √(ΣL_ODD² + ΣL_EVEN²)
Его работа состоит в том, чтобы определить Check_Digit и сопоставить его с тем значением, которое рассчитывает его Босс.
Чарли Чаплин во время обеденного перерыва смог подкрасться к ящику Мака Суэйна и определить, что в его ящике есть одна карточка с ударами по первым 46 32 столбцам (что означает, что Мэк смог написать программу, содержащую только 46 32 символа).
Чарли Чаплину теперь понадобится помощь всех ниндзя кода, чтобы написать программу с как можно меньшим количеством строк. Он также объявляет бонус в 50 баллов, если кто-то может придумать программу, которая короче, чем его Босс.
Резюме
Учитывая список / массив / вектор положительных чисел (нечетных и четных), вам нужно написать функцию, которая будет принимать array(int [])/vector<int>/list
и вычислять корень суммы квадратов сумм нечетных и четных чисел в списке.
Размер программы - это размер тела функции, т.е. без учета размера сигнатуры функции.
пример
List = [20, 9, 4, 5, 5, 5, 15, 17, 20, 9]
Odd = [9, 5, 5, 5, 15, 17, 9]
Even = [20, 4, 20]
Check_Digit = √(ΣOdd² + ΣEven²) = 78.49203781276162
Обратите внимание , что фактический вывод может варьироваться в зависимости от точности реализации с плавающей запятой.
Гол
Оценка рассчитывается как Оценка рассчитывается как Σ(Characters in your Program) - 46
. Σ(Characters in your Program) - 32
. Помимо регулярного голосования со стороны сообщества, самый низкий отрицательный балл получит дополнительный бонус в 50 баллов.
редактировать
- Смещение, которое использовалось для расчета балла, было изменено с 46 на 32. Обратите внимание, что это не повлияет на соответствие критериям списка лидеров / награды или сделает недействительным любое решение.
решение суда
После ужасного поединка между ниндзя мистер Чаплин получил несколько замечательных ответов. К сожалению, немногие из ответов пытались использовать неоправданное преимущество правила и были не очень полезны. Он действительно хотел честного поединка, и ответы, где логика была закодирована в сигнатурах функций, в конечном итоге означали, что сигнатура функции является неотъемлемой частью решения. Наконец, Ninja FireFly стал явным победителем и наградил его бонусом, которого он вполне заслуживает. Таблица лидеров (обновляется каждый день)
╒══════╤═════════════════╤══════════════╤═════════╤════════╤═══════╕
├ Rank │ Ninja │ Dialect │ Punches │ Scores │ Votes ┤
╞══════╪═════════════════╪══════════════╪═════════╪════════╪═══════╡
│ 0 │ FireFly │ J │ 17 │ -15 │ 6 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 1 │ tmartin │ Kona │ 22 │ -10 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 2 │ Sven Hohenstein │ R │ 24 │ -8 │ 7 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 3 │ Ben Reich │ GolfScript │ 30 │ -2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 4 │ mollmerx │ k │ 31 │ -1 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 5 │ David Carraher │ Mathematica │ 31 │ -1 │ 3 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 6 │ tmartin │ Q │ 34 │ 2 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 7 │ daniero │ dc │ 35 │ 3 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 8 │ psion5mx │ Python │ 38 │ 6 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 9 │ O-I │ Ruby │ 39 │ 7 │ 5 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 10 │ gggg │ Julia │ 40 │ 8 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 11 │ FakeRainBrigand │ LiveScript │ 50 │ 18 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 12 │ Sylwester │ Perl5 │ 50 │ 18 │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 13 │ daniero │ Ruby │ 55 │ 23 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 14 │ vasuakeel │ Coffeescript │ 57 │ 25 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 15 │ dirkk │ XQuery │ 63 │ 31 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 16 │ crazedgremlin │ Haskell │ 64 │ 32 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 17 │ Uri Agassi │ Ruby │ 66 │ 34 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 18 │ Sumedh │ JAVA │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 19 │ Danny │ Javascript │ 67 │ 35 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 20 │ deroby │ c# │ 69 │ 37 │ 1 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 21 │ Adam Speight │ VB │ 70 │ 38 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 22 │ Andrakis │ Erlang │ 82 │ 50 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 23 │ Sp0T │ PHP │ 85 │ 53 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 24 │ brendanb │ Clojure │ 87 │ 55 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 25 │ Merin Nakarmi │ C# │ 174 │ 142 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 26 │ Boopathi │ JAVA │ 517 │ 485 │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 27 │ Noyo │ ES6 │ ? │ ? │ 2 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 28 │ shiona │ Haskell │ ? │ ? │ 0 │
├──────┼─────────────────┼──────────────┼─────────┼────────┼───────┤
│ 29 │ Vivek │ int │ ? │ ? │ 0 │
└──────┴─────────────────┴──────────────┴─────────┴────────┴───────┘