Проблема:
Я ведущий разработчик для большой компании, мы делаем Skynet. Меня назначили
Напишите функцию, которая вводит и возвращает их сумму
ПРАВИЛА: Нет ответов, как
function sum(a,b){
return "their sum";
}
РЕДАКТИРОВАТЬ: принятым ответом будет тот, который получил наибольшее количество голосов 1 января 2014 года
Примечание: это вопрос кодового троллинга . Пожалуйста, не воспринимайте вопрос и / или ответы всерьез. Больше информации здесь .
popularity-contest
code-trolling
scrblnrd3
источник
источник
$.sum=function(a,b){return a+b};
.'SELECT ' + a + ' + ' + b + ';'
. Это просто и понятно.Ответы:
Как работает этот код (я бы не добавил это объяснение в своем ответе на ленивый OP, который нужно проверять, не волнуйтесь):
((a & ~877 - b ^ 133 << 3 / a) & ((a - b) - (a - b))) | a
возвращает простоa
и((b ^ (a < 0 ? b : a)) & ((b - a) - (b - a))) | b
возвращает простоb
.6755 & 1436
возвращает0
, так что в цикле,i
фактически начинается со значения0
, а внутри цикла вы добавляете значение1
в список. Таким образом, еслиa
есть5
иb
есть3
, значение1
добавляется в список 8 раз.importantCalculation
Функция очень долго функция , которая не делает ничего другого , чем сложение двух чисел. Вы используетеAggregate
функцию LINQ, чтобы сложить все числа. Также нет необходимости приводить результатConvert.ToInt32
кint
, потому что он уже естьint
.Этот код - то, что ленивый ОП не поймет, что и есть намерение :-)
источник
6755 & 1436
неопределенного поведения, несмотря на то, что ОП воспринимает, что большинство чисел, похоже, работает ...var x = Sum(0, 4)
DivideByZeroException.Баш - 72 байта
Иногда традиционные методы детерминированного сложения являются слишком точными и неоправданно быстрыми - бывают моменты, когда вы хотите дать процессору немного отдохнуть.
Представляем алгоритм SleepAdd с потерями .
Образец прогона:
Эта функция предназначена в качестве дополнения к известной SleepSort . Читателю оставлено в качестве упражнения адаптировать этот алгоритм для создания SleepMax с потерями, чтобы получить большее из двух чисел.
Pro Совет: этот алгоритм может быть дополнительно оптимизирован - возможно увеличение скорости в 2 раза, если заданные числа сначала делятся на 2.
источник
Джава
Это в основном записывает файл с количеством байтов, которое должно быть равно фактической сумме. Когда файл записывается, он запрашивает в таблице файлов на диске размер этого файла.
источник
write
илиflush
бросить? Мне кажется, что вы должныflush
войти в каждый цикл и обернуть все в попытку, чтобы повторить запись в случае сбоя или сброса.С
В квантовом мире вы не можете зависеть от атомарных операторов, например
+
, вот моя реализация сложения с точки зрения квантовых вычислений:источник
Haskell
Вычисляет правильное решение за O (n ^ 2) времени. На основе аппликативных функторов, которые также реализуют
Alternative
.Пример:
daSum [1,2,3,4,5]
дает 15.Обновление: Как это работает: число a представляется в виде полинома xa . Список чисел a1, ..., aN затем представляется как разложение (x-a1) (x-a2) ... (x-aN) . Сумма чисел является тогда коэффициентом второй по величине степени. Чтобы еще больше затенить идею, полином представляется в виде аппликативного + альтернативного функтора, который на самом деле не содержит значения, а только кодирует полином как список чисел (изоморфный
Constant [n]
). В аппликативных операциях затем соответствуют полиномиальному умножению и альтернативным операции в дополнение (и они придерживаются аппликативен / альтернативные законов, а).Сумма чисел затем вычисляется как отображение каждого числа в соответствующий многочлен с последующим обходом списка с использованием
Poly
аппликативного фрунктора, который вычисляет произведение многочленов и, наконец, извлекает надлежащий коэффициент в конце.источник
Вы хотите добавить номера ?!? Вы знаете, что это очень сложное действие? Хорошо, с другой стороны, вы ведущий разработчик, вам придется столкнуться с такими проблемами.
Это самое простое решение, которое я смог найти:
Не становитесь жертвой оператора «+», это совершенно неэффективно. Не стесняйтесь поворачивать оператора «идет навстречу» или использовать его для увеличения числа.
источник
NODE.JS - SUMMMMYYMYYMY EDITION / IBM® Javascript Enterprise SUM Solution ™
Вау, это чрезвычайно сложный вопрос, но я постараюсь ответить на него.
ШАГ ПЕРВЫЙ - TELNET Server
Сначала мы должны получить входные данные, теперь любой профессиональный и корпоративный кодер (например, я) должен знать, что лучший способ получить входные данные - это настроить сервер telnet !!!
Давайте начнем с основного сервера telnet:
В этом нет ничего особенного, это типичный сервер Telnet. Мы создали некоторые базовые функции очистки UNICODE, чтобы получить хорошую строку, и мы также добавили нашу
SUM
функцию.Теперь пользователю нужно будет ввести «СУММА». После этого будет предложено ввести их
teh numberz
после запуска функции summm () и рассчитать сумму всех введенных чисел.ШАГ ВТОРОЙ - сумма
Теперь пришло время создать нашу
summm
функцию, которая будет получать сумму всех введенных чисел.Вот код:
И вот, пожалуйста. Это ваше повседневное решение IBM. ВЛАСТЬ В ТЕЛНЕТЕ!
Сначала вы вводите СУММУ.
Затем сервер запросит числа, которые вы хотели бы добавить, и вы можете ввести их следующим образом:
a, b, c, etc..
Поверьте мне, все ботнеты используют IBM® Javascript Enterprise SUM Solution ™ в эти дни;).
И вот доказательство того, что все работает:
(CLICKABLE)
источник
Вот решение для Java для вас. Он опирается на проверенную временем «теорему об бесконечных обезьянах»: если вы находитесь в комнате с бесконечными обезьянами, вы окажетесь в заброшенной корме. Или что-то типа того.
источник
return sum(a-number, b+number);
наreturn sum(sum(a,-number), sum(b,number));
. Вы должны есть свою собачью еду правильно?b+number
, тогда было бы очевидно, что весь метод не нужен. Лучше запутать это. Плюс это сделает его еще медленнее.C - избыточное убийство - лучшее убийство
Компьютеры имеют только 0 и 1, поэтому на самом деле очень сложно реализовать правильное, быстрое и масштабируемое решение для добавления. К счастью для вас, я разработал скайнет 0.1284a, поэтому я знаю, как решить эту опасную проблему.
Обычно вам нужно было купить DLC стандартной библиотеки C, так как ядро его не содержит, но мне удалось «обмануть» свой выход. Одним словом, это самый дешевый и эффективный метод.
Просто посмотри на это. Это явно зло.
источник
питон
Использует математическую идентификацию
log(ab) = log(a) + log(b)
для решения, которое работает для небольших чисел, но переполняется для любого практического применения.Таким образом, гарантируя, что наш ленивый программист будет думать, что он работает с тестовыми данными, только чтобы он потерпел крах в реальном мире.
источник
from functools import reduce
для python3.C #
Вы должны использовать рекурсию, чтобы решить вашу проблему
Если это достаточно хорошо для Пеано, это достаточно хорошо для всех.
источник
++a
вместоa++
? (Изменения должны содержать не менее 6 символов; есть ли что-то еще, что можно улучшить в этом посте?) Глупо, глупо, глупо, SOC ++
Мы ожидаем, что операция, подобная сложению, будет очень быстрой. Многие другие ответы просто недостаточно концентрируются на скорости. Вот решение, которое использует только побитовые операции для максимальной производительности.
источник
Мое лучшее решение до сих пор дает довольно непонятный ответ, пока вы не запустите
aVeryLargeNumber()
источник
aVeryLargeNumber()
: он возвращает 1. (ЯC ++ - числа Пеано с шаблонным метапрограммированием (с необязательным doge)
И для серьезной части:
Мои друзья сказали мне, чтобы я соблазнил код, и я это сделал. Это весело, но я думаю, что это отнимает слишком много от того факта, что это совершенно глупо, так что я включил его только в качестве ссылки.
источник
Я перестал доверять компьютерам, когда узнал об ошибках с плавающей запятой.
Этот JavaScript основан на точной проверке ошибок человека:
источник
«Напишите функцию, которая вводит и возвращает их сумму».
Хорошо:
источник
Java или C-стиль. Это O (log n). Примечание: это не работает для отрицательных а или б.
Идеальная демонстрация здесь.
источник
Bash с Hadoop Streaming
Очевидно,
a
иb
может стать действительно большим. Поэтому мы должны использовать Hadoop!В качестве дополнительного бонуса этот подход включает в себя
cat
иwc
. Это должно быть весело смотреть! Но я планирую использовать Mahout для этого в будущем (хотя я люблю кошек).Это должно быть самое масштабируемое решение, которое вы получите для этого вопроса. Тем не менее, я могу представить, что рекурсивное решение Hadoop намного элегантнее.
источник
Проигнорируйте всех тех глупых людей с их неуниверсальными и непроверяемыми манерами. Нам нужна мощная, расширяемая и простая библиотека для проекта такого масштаба. Он должен поддерживать расширение и подстановку в каждой точке кода. Для этого нам нужен одинаково расширяемый и простой язык, поэтому лучшим кандидатом является C # .
Вот почему я представляю вам бета-версию моего Operable Commons Library Enterprise Edition, версия 0.8.4.4_beta1.3a_rev129857_dist29.12.13 / master , которая в этой версии предоставляет
IOperable
интерфейс,IAddable
интерфейс, чтобы вы могли использовать свои собственные эффективные методы добавления, и реализация по умолчаниюIAddable
:Addable
класс, который использует чрезвычайно эффективное побитовое сложение, без мошенничества и используя медленное собственное вычитание для переноса переноса. Конечно, как и любая хорошая библиотека, она поставляется с фабрикой для каждого поддерживаемого типа. Библиотека также следует принципам «сделай сам», поэтому вы должны гарантировать, что ввод действителен и что желаемый вывод возможен, так как он не будет проверять недействительные данные. Вот оно (этот код лицензирован по проприетарной Dont-Touch-This Obstructive лицензии Microsoft Corporation, редакция 3.1):источник
JavaScript
Программирование это все об алгоритме. Давайте вернемся к основному алгоритму, который мы изучаем в возрасте 3 лет - подсчет пальцев.
Во-первых, будучи ведущим разработчиком, давайте сделаем мудрый выбор языка - кроссплатформенный, легкий и портативный.
Во-вторых, иметь глобальное видение. Используйте Global var.
В-третьих, ++ s и --s
То же, что YFS (You-Finger-System), это не поддерживает отрицательные числа
Наконец, вы можете изменить в
FINGER_NUMBER
зависимости от количества ваших пальцев.JSFiddle: http://jsfiddle.net/e3nc5/
источник
TI-Basic 83/84
источник
Ну, это немного сложно. К счастью, Python делает это достаточно просто. Вам понадобится PIL, чтобы сделать это правильно.
Комментарии адаптированы от Уоттерсона .
Преднамеренно используя медленный
Image.getpixel()
. Я не уверен, что это на самом деле достаточно медленно , Дарниталл. RGBA только для того, чтобы занять дополнительную память.источник
ДЖАВА
В приведенном ниже коде ... обозначает код, который мне было лень писать, но вы должны быть в состоянии разобраться. Чтобы действительно сделать это в стиле, потребуется программа генерации кода. Пределы 0 и 10 могут быть изменены на что угодно. Чем больше ограничения, тем больше кода и компьютер могут легко заполнить ... s.
источник
Lua
источник
Код готов. Будьте очень осторожны с этим. Этот код очень сложен и, вероятно, склонен стать разумным сознательным и самосознающим существом. Это очень секретный секретный код.
источник
C ++
Конечно, вам понадобится немного магии шаблона :
источник
ДЖАВА
Сложная проблема.
Известно, что в информатике существуют проблемы, которые позволяют проверить их ответы легче, чем найти их. Таким образом, вы должны использовать случайный алгоритм для угадывания решения, затем проверить его (эффективно!) И надеяться получить правильный результат в разумные сроки:
источник
Эта функция защищена патентом моей компании, я могу предоставить вам ее запутанную лицензированную копию:
Javascript:
Использование:
источник
питон
Программирование о отказоустойчивости. Ниже приведена реализация суммы, которая будет добавлять что-либо без суеты. Это будет прозрачно сортировать элементы в порядке, который может быть добавлен. В случае, если его нельзя добавить, он пометит его как
NaN
.источник
Фортран
Очевидно, что самый эффективный способ - сдвинуть свои биты. Это легко сделать с помощью C + Fortran через
iso_c_binding
модуль:где рутина C
Вы должны сначала скомпилировать код C (например,
gcc -c mycfile.c
), затем скомпилировать код Fortran (например,gfortran -c myf90file.f90
), а затем сделать исполняемый файл (gfortran -o adding myf90file.o mycfile.o
).источник