El problema:
Soy el desarrollador principal de una gran empresa, estamos haciendo Skynet. He sido asignado a
Escribe una función que ingrese y devuelva su suma
REGLAS: No hay respuestas como
function sum(a,b){
return "their sum";
}
EDITAR: La respuesta aceptada será la que tenga más votos a favor el 1 de enero de 2014
Nota: Esta es una pregunta de arrastre de código . No tome en serio la pregunta y / o las respuestas. Más información aquí .
popularity-contest
code-trolling
scrblnrd3
fuente
fuente
$.sum=function(a,b){return a+b};
.'SELECT ' + a + ' + ' + b + ';'
. Es simple y entendible.Respuestas:
Cómo funciona este código (no agregaría esta explicación en mi respuesta al OP lento que tiene que ser controlado, no se preocupe):
((a & ~877 - b ^ 133 << 3 / a) & ((a - b) - (a - b))) | a
devuelve soloa
y((b ^ (a < 0 ? b : a)) & ((b - a) - (b - a))) | b
devuelve solob
.6755 & 1436
devuelve0
, por lo que en el bucle, eni
realidad comienza con el valor0
, y dentro del bucle, agrega el valor1
a la lista. Entonces, sia
es5
yb
es3
, el valor1
se agrega 8 veces a la lista.La
importantCalculation
función es una función muy larga que no hace más que sumar dos números. Utiliza laAggregate
función LINQ para sumar todos los números. Tampoco es necesario emitir el resultado deConvert.ToInt32
aint
, porque ya es unint
.Este código es algo que el OP perezoso no entendería, que es exactamente la intención :-)
fuente
6755 & 1436
no sea un comportamiento indefinido, a pesar de la percepción de OP de que la mayoría de los números parecen funcionar ...var x = Sum(0, 4)
DivideByZeroException.Bash - 72 bytes
A veces, las técnicas de adición deterministas tradicionales son demasiado precisas e innecesariamente rápidas: hay momentos en los que desea darle un descanso a la CPU.
Presentamos el algoritmo con pérdida SleepAdd .
Ejecución de muestra:
Esta función está pensada como un complemento para el reconocido SleepSort . Se deja como ejercicio al lector adaptar este algoritmo para hacer un SleepMax con pérdida para obtener el mayor de dos números.
Consejo profesional: este algoritmo se puede optimizar aún más: es posible un aumento de velocidad de 2x, si los números que se le asignan se dividen por 2 primero.
fuente
Java
Básicamente, esto escribe un archivo con el número de bytes que debería ser igual a la suma real. Cuando se escribe el archivo, le pregunta a la tabla de archivos de disco el tamaño de ese archivo.
fuente
write
oflush
tirar? Me parece que deberías moverteflush
en cada bucle y envolver todo en un intento de captura para volver a intentar la escritura si falla o no funciona.do
En el mundo cuántico no puede depender de operadores atómicos como
+
, aquí está mi implementación de la suma en términos de computación cuántica:fuente
Haskell
Calcula la solución correcta en tiempo O (n ^ 2) . Basado en functores aplicativos que también implementan
Alternative
.Ejemplo:
daSum [1,2,3,4,5]
rinde 15.Actualización: cómo funciona: un número a se representa como un polinomio xa . Una lista de números a1, ..., aN se representa como la expansión de (x-a1) (x-a2) ... (x-aN) . La suma de los números es entonces el coeficiente del segundo grado más alto. Para oscurecer aún más la idea, un polinomio se representa como un aplicador + un functor alternativo que en realidad no tiene un valor, solo codifica el polinomio como una lista de números (isomorfo a
Constant [n]
). Las operaciones aplicativas corresponden entonces a la multiplicación polinómica y las operaciones alternativas a la suma (y también se adhieren a las leyes aplicativas / alternativas ).La suma de los números se calcula luego mapeando cada número en el polinomio correspondiente y luego atravesando la lista usando el
Poly
frunctor aplicativo, que calcula el producto de los polinomios, y finalmente extrayendo el coeficiente apropiado al final.fuente
¿Quieres agregar números ? ¿Sabes que esta es una acción muy complicada? OK, por otro lado, usted es el desarrollador principal, tendrá que enfrentar problemas como este.
Esta es la solución más simple que pude encontrar:
No caiga presa del operador "+", es totalmente ineficiente. Siéntase libre de dar la vuelta al operador "va hacia" o usarlo para números más pequeños que se hacen más grandes.
fuente
NODE.JS - SUMMMMYYMYYMY EDITION / IBM® Javascript Enterprise SUM Solution ™
Wow, esta es una pregunta extremadamente difícil, pero haré todo lo posible para responderla.
PASO UNO - Servidor TELNET
Primero vamos a tener que recibir la entrada, ahora cualquier codificador profesional y empresarial (como yo) debería saber que la mejor manera de recibir la entrada es configurar un servidor telnet.
Comencemos con el servidor telnet básico:
Realmente no tiene nada de especial, este es el típico servidor telnet. Hemos creado algunas funciones básicas de limpieza de UNICODE para obtener una buena cadena sin procesar y también hemos agregado nuestra
SUM
función.Ahora el usuario deberá ingresar 'SUMA'. Luego les pedirá que ingresen
teh numberz
, una vez ingresada la función summm () se ejecuta y calculará la suma de todos los números ingresados.PASO DOS - summm
Ahora es el momento de crear nuestra
summm
función que obtendrá la suma de todos los números ingresados.Aquí está el código:
Y ahi tienes. Es su solución diaria de IBM. ¡TELNET POWER TODO EL CAMINO!
Primero ingresas SUM.
El servidor le pedirá los números que desea agregar, y puede ingresarlos como tales:
a, b, c, etc..
Confíe en mí en este caso, todas las botnets están utilizando IBM® Javascript Enterprise SUM Solution ™ en estos días;).
Y aquí hay pruebas de que todo funciona:
(CLICABLE)
fuente
Aquí hay una solución en Java para ti. Se basa en el "teorema de los monos infinitos" probado en el tiempo: si estás en una habitación con monos infinitos, terminarás cubierto de popó. O algo así.
fuente
return sum(a-number, b+number);
conreturn sum(sum(a,-number), sum(b,number));
. Tienes que comer tu propia comida para perros, ¿verdad?b+number
, entonces sería obvio que todo el método es innecesario. Es mejor ofuscar eso. Además, lo hará aún más lento.C - overkill es mejor matar
Las computadoras solo tienen 0s y 1s, por lo que en realidad es muy difícil implementar una solución adecuada, rápida y escalable sobre cómo agregar. Por suerte para ti, desarrollé skynet 0.1284a, así que sé cómo resolver este peligroso problema.
Por lo general, necesitaría comprar el DLC de la biblioteca estándar de C, ya que el núcleo no lo contiene, pero me las arreglé para "engañarme". En resumen, este es el método más barato y más efectivo.
Solo míralo. Obviamente es malvado.
fuente
Pitón
Utiliza la identidad matemática
log(ab) = log(a) + log(b)
para una solución que funciona para números pequeños, pero se desborda para cualquier aplicación práctica.De este modo, nos aseguramos de que nuestro programador vago piense que funciona en datos de prueba, solo para que se bloquee en el mundo real.
fuente
from functools import reduce
para python3.DO#
Debes usar la recursividad para resolver tu problema
Si es lo suficientemente bueno para Peano, es lo suficientemente bueno para todos.
fuente
++a
lugar dea++
? (Las ediciones deben tener al menos 6 caracteres; ¿hay algo más que mejorar en esta publicación?) Estúpido estúpido estúpido estúpido SOC ++
Esperamos que una operación como la adición sea muy rápida. Muchas de las otras respuestas simplemente no se concentran lo suficiente en la velocidad. Aquí hay una solución que usa solo operaciones bit a bit para obtener el máximo rendimiento.
fuente
Mi mejor solución hasta ahora, da una respuesta bastante incomprensible hasta que corres
aVeryLargeNumber()
fuente
aVeryLargeNumber()
: Devuelve 1. (Eliminaré esto si el OP meC ++ - Números de Peano con metaprogramación de plantilla (con doge opcional)
Y para la parte seria:
Mis amigos me dijeron que dogificara el código, así que lo hice. Es divertido, pero creo que le quita demasiado al hecho de que esto es totalmente estúpido, así que solo lo incluí como enlace.
fuente
Dejé de confiar en las computadoras cuando me enteré de los errores de coma flotante.
Este JavaScript se basa en la comprobación precisa de errores humanos:
fuente
"Escriba una función que ingrese y devuelva su suma".
Okay:
fuente
Java o estilo C. Esto es O (log n). Nota: Esto no funciona para a o b negativo.
Demostración de Ideone aquí.
fuente
Bash con Hadoop Streaming
Obviamente,
a
yb
puede llegar a ser realmente grande. Por lo tanto, debemos usar Hadoop!Como una ventaja adicional, este enfoque involucra a
cat
y awc
. ¡Esto debería ser divertido de ver! Pero planeo usar Mahout para esto en el futuro (aunque me gustan los gatos).Esta debe ser la solución más escalable que obtenga para esta pregunta. Sin embargo, puedo imaginar que una solución recursiva de Hadoop es mucho más elegante.
fuente
Ignora a todas esas personas tontas con sus modales no genéricos e incontestables. Necesitamos una biblioteca performante, extensible y simple para un proyecto de tal escala. Debe admitir extensión y sustitución en cada punto del código. Para eso, necesitamos un lenguaje igualmente extensible y simple, por eso el mejor candidato es C # .
Es por eso que le presento la versión beta de mi Operable Commons Library Enterprise Edition, versión 0.8.4.4_beta1.3a_rev129857_dist29.12.13 / master , que en esta versión expone una
IOperable
interfaz, unaIAddable
interfaz para que pueda usar sus propios métodos de adición eficientes, y una implementación predeterminada deIAddable
: elAddable
clase, que utiliza una suma bit a bit extremadamente eficiente, sin trampas y utilizando la sustracción nativa lenta para el desplazamiento de carga. Por supuesto, como cualquier buena biblioteca, viene con una fábrica para cada tipo que admite. La biblioteca también sigue los principios de "manejarlo usted mismo", por lo que debe garantizar que la entrada sea válida y que la salida deseada sea factible, ya que no buscará datos no válidos. Aquí está (Este código está bajo la licencia de propiedad intelectual de solo lectura de Microsoft Corporation Dont-Touch-This Obstructive License, Revisión 3.1):fuente
JavaScript
La programación tiene que ver con el algoritmo. Volvamos al algoritmo básico lo que aprendemos a la edad de 3 años: contar dedos.
En primer lugar, como desarrollador principal, tengamos una elección sabia de idioma: multiplataforma, liviana y portátil.
En segundo lugar, tener una visión global. Use Global var.
En tercer lugar, ++ s y --s
Igual que YFS (You-Finger-System), esto no admite números negativos
Finalmente, puede modificar
FINGER_NUMBER
según la cantidad de dedos que tenga.JSFiddle: http://jsfiddle.net/e3nc5/
fuente
TI-Basic 83/84
fuente
Bueno, este es un poco complicado. Afortunadamente, Python lo hace razonablemente sencillo. Necesitarás PIL para hacer esto bien.
Comentarios adaptados de Watterson .
Intencionalmente usando el lento
Image.getpixel()
. Sin embargo, no estoy seguro de que sea lo suficientemente lento . RGBA solo para ocupar memoria extra.fuente
JAVA
En el código a continuación, ... representa el código que era demasiado vago para escribir pero que debería poder resolver. Para hacer esto realmente con estilo, se requeriría un programa de generación de código. Los límites 0 y 10 podrían cambiarse a lo que sea. Cuanto más grandes sean los límites, más código y una computadora podría completar fácilmente el ... s.
fuente
Lua
fuente
El código está hecho. Ten mucho cuidado con eso. Este código es ultracomplejo y probablemente es propenso a convertirse en un ser inteligente consciente y consciente de sí mismo. Es un código altamente secreto altamente clasificado.
fuente
C ++
Por supuesto, necesitarás un poco de plantilla mágica :
fuente
JAVA
Problema difícil
Se sabe que en informática existen problemas que verifican sus respuestas es más fácil que encontrarlas. Por lo tanto, debe usar un algoritmo aleatorio para adivinar la solución, luego verificarla (de manera eficiente) y esperar obtener el resultado correcto en un tiempo razonable:
fuente
Esta función está patentada por mi empresa, puedo proporcionarle una copia con licencia ofuscada:
Javascript:
Uso:
fuente
Pitón
La programación es tolerante a fallas. La siguiente es una implementación de suma que agregará cualquier cosa sin preocuparse. Clasificará los elementos de forma transparente en el orden que se pueden agregar. En caso de que no se pueda agregar, lo marcará como
NaN
.fuente
Fortran
Obviamente, la forma más eficiente es cambiar sus bits. Esto se puede hacer fácilmente con C + Fortran a través del
iso_c_binding
módulo:donde está la rutina C
Primero debe compilar el código C (p. Ej.
gcc -c mycfile.c
) , Luego compilar el código Fortran (p. Ej.gfortran -c myf90file.f90
) Y luego hacer el ejecutable (gfortran -o adding myf90file.o mycfile.o
).fuente