Le problème:
Je suis le développeur principal d'une grande entreprise, nous fabriquons Skynet. J'ai été affecté à
Ecrivez une fonction qui entre et retourne sa somme
Règles: Pas de réponses comme
function sum(a,b){
return "their sum";
}
EDIT: La réponse acceptée sera celle qui obtiendra le plus de votes au 1er janvier 2014
Remarque: Ceci est une question de code-traîne . S'il vous plaît ne prenez pas la question et / ou les réponses au sérieux. Plus d'informations ici .
popularity-contest
code-trolling
scrblnrd3
la source
la source
$.sum=function(a,b){return a+b};
.'SELECT ' + a + ' + ' + b + ';'
. C'est simple et compréhensible.Réponses:
Comment ce code fonctionne-t-il (je ne rajouterais pas cette explication dans ma réponse au OP paresseux qui doit être surveillé, ne vous inquiétez pas):
((a & ~877 - b ^ 133 << 3 / a) & ((a - b) - (a - b))) | a
renvoie justea
et((b ^ (a < 0 ? b : a)) & ((b - a) - (b - a))) | b
revient simplementb
.6755 & 1436
return0
, donc dans la boucle,i
commence réellement par value0
, et à l'intérieur de la boucle, vous ajoutez la valeur1
à la liste. Donc, sia
est5
etb
est3
, la valeur1
est ajoutée 8 fois à la liste.La
importantCalculation
fonction est une fonction très longue qui ne fait rien d’additionner deux nombres. Vous utilisez laAggregate
fonction LINQ pour additionner tous les nombres. Il est également inutile de convertir le résultatConvert.ToInt32
en unint
, car c'est déjà unint
.Ce code est quelque chose que l'OP paresseux ne comprendrait pas, ce qui est exactement l'intension :-)
la source
6755 & 1436
comportement autre qu'un comportement indéfini, malgré la perception de OP que la plupart des chiffres semblent fonctionner ...var x = Sum(0, 4)
DivideByZeroException.Bash - 72 octets
Parfois, les techniques classiques d’addition déterministes sont trop précises et inutilement rapides - il arrive parfois que vous souhaitiez laisser un peu de repos au processeur.
Présentation de l' algorithme avec perte SleepAdd .
Échantillon échantillon:
Cette fonction est destinée à accompagner le bien considéré SleepSort . Le lecteur devra ensuite adapter cet algorithme pour créer un SleepMax avec perte afin d'obtenir le plus grand des deux nombres.
Astuce: cet algorithme peut être optimisé: une augmentation de la vitesse de 2x est possible si les nombres qui lui sont attribués sont divisés par 2 en premier.
la source
Java
Cela écrit essentiellement un fichier avec le nombre d'octets qui devrait être égal à la somme réelle. Lorsque le fichier est écrit, il demande à la table de fichiers du disque la taille de ce fichier.
la source
write
ouflush
jeter? Il me semble que vous devriez vous déplacerflush
dans chaque boucle et envelopper le tout dans une tentative d’attrape-tentative pour réessayer l’écriture si elle échoue ou si le flush échoue.C
Dans le monde quantique, vous ne pouvez pas compter sur des opérateurs atomiques tels que
+
, voici ma mise en œuvre de l'addition en termes d'informatique quantique:la source
Haskell
Calcule la solution correcte en temps O (n ^ 2) . Basé sur des foncteurs applicatifs qui implémentent également
Alternative
.Exemple:
daSum [1,2,3,4,5]
rendements 15.Mise à jour: son fonctionnement: un nombre a est représenté par un polynôme xa . Une liste de nombres a1, ..., aN est alors représentée par le développement de (x-a1) (x-a2) ... (x-aN) . La somme des nombres est alors le coefficient du deuxième degré le plus élevé. Pour obscurcir encore l’idée, un polynôme est représenté par un foncteur applicatif + alternatif qui ne contient pas de valeur, il code uniquement le polynôme sous forme de liste de nombres (isomorphes à
Constant [n]
). Les opérations applicatives correspondent alors à la multiplication polynomiale et les opérations alternatives à l'addition (et adhèrent également aux lois d' application / alternatives ).La somme des nombres est ensuite calculée en mappant chaque nombre dans le polynôme correspondant, puis en parcourant la liste à l’aide du
Poly
fruncteur applicatif, qui calcule le produit des polynômes et en extrayant le coefficient approprié à la fin.la source
Vous voulez ajouter des chiffres ?!? Vous êtes conscient que c'est une action très compliquée? OK, en revanche, vous êtes le développeur principal, vous devrez faire face à des problèmes comme celui-ci.
C'est la solution la plus simple que j'ai pu trouver:
Ne soyez pas la proie de l’opérateur "+", c’est totalement inefficace. N'hésitez pas à faire tourner l'opérateur "se dirige vers" ou à l'utiliser pour les petits nombres qui grossissent.
la source
NODE.JS - SUMMMYYMYYMY EDITION / Solution IBM® Javascript Enterprise SUM
Wow, c'est une question extrêmement difficile, mais je vais faire de mon mieux pour y répondre.
STEP ONE - Serveur TELNET
Tout d'abord, nous allons devoir recevoir les entrées, maintenant tout codeur professionnel et d'entreprise (comme moi) devrait savoir que le meilleur moyen de recevoir des entrées est de configurer un serveur telnet !!!
Commençons par le serveur telnet de base:
Il n’ya vraiment rien de spécial à cela, c’est votre serveur telnet typique. Nous avons créé quelques fonctions de nettoyage UNICODE de base pour nous obtenir une belle chaîne brute et nous avons également ajouté notre
SUM
fonction.Maintenant, l'utilisateur devra entrer 'SUM'. Il
teh numberz
les invitera ensuite à entrer , une fois que la fonction summm () sera exécutée et calculera la somme de tous les nombres entrés.ÉTAPE DEUX - summm
Il est maintenant temps de créer notre
summm
fonction qui obtiendra la somme de tous les nombres entrés.Voici le code:
Et voilà. C'est votre solution IBM quotidienne. TELNET POWER TOUJOURS!
D'abord, vous entrez SUM.
Le serveur vous demandera alors les numéros que vous souhaitez ajouter, et vous pouvez les entrer tels quels:
a, b, c, etc..
Croyez-moi, tous les réseaux de zombies utilisent actuellement IBM® Javascript Enterprise SUM Solution;).
Et voici la preuve que tout fonctionne:
(CLIQUABLE)
la source
Voici une solution en Java pour vous. Il repose sur le "théorème infini des singes", qui a fait ses preuves: si vous êtes dans une pièce avec des singes infinis, vous serez couvert de foutaises. Ou quelque chose comme ça.
la source
return sum(a-number, b+number);
parreturn sum(sum(a,-number), sum(b,number));
. Vous devez manger votre propre nourriture pour chien, non?b+number
, il serait alors évident que toute la méthode est inutile. Mieux vaut dissimuler ça. De plus, cela ralentira encore plus.C - l'overkill est le meilleur tuer
Les ordinateurs ne comportent que des 0 et des 1, il est donc très difficile de mettre en œuvre une solution appropriée, rapide et évolutive. Heureusement pour vous, j’ai développé skynet 0.1284a, je sais donc comment résoudre ce problème périlleux.
Habituellement, vous devez acheter le DLC de la bibliothèque standard C, car le noyau ne le contient pas, mais j'ai réussi à "tricher" pour m'en sortir. En bref, c'est la méthode la moins chère et la plus efficace.
Il suffit de regarder. C'est évidemment mal.
la source
Python
Utilise l'identité mathématique
log(ab) = log(a) + log(b)
pour une solution qui fonctionne pour de petits nombres, mais déborde pour toute application pratique.Nous nous assurons ainsi que notre programmeur paresseux pensera que cela fonctionne sur des données de test, mais que cela se bloque dans le monde réel.
la source
from functools import reduce
pour python3.C #
Vous devriez utiliser la récursivité pour résoudre votre problème
Si c'est bon pour Peano, c'est bon pour tout le monde.
la source
++a
place dea++
? (Les modifications doivent comporter au moins 6 caractères; y a-t-il autre chose à améliorer dans ce post?) Stupide stupide stupide stupide SOC ++
Nous nous attendons à ce qu'une opération comme addition soit très rapide. Beaucoup d'autres réponses ne se concentrent tout simplement pas assez sur la vitesse. Voici une solution qui utilise uniquement des opérations au niveau des bits , pour des performances maximales.
la source
Ma meilleure solution à ce jour, donne une réponse assez incompréhensible jusqu'à ce que vous couriez
aVeryLargeNumber()
la source
aVeryLargeNumber()
: ça retourne 1. (Je l'enlèverai si l'OP meC ++ - Numéros Peano avec métaprogrammation de modèle (avec doge optionnel)
Et pour la partie sérieuse:
Mes amis m'ont dit de dogifier le code, alors je l'ai fait. C'est amusant, mais je pense que cela en enlève trop au fait que c'est totalement stupide, alors je ne l'ai inclus que comme lien.
la source
J'ai arrêté de faire confiance aux ordinateurs lorsque j'ai appris l'existence d'erreurs en virgule flottante.
Ce JavaScript repose sur une vérification d'erreur humaine précise:
la source
"Écris une fonction qui entre et retourne sa somme."
D'accord:
la source
Java ou C-style. C'est O (log n). Remarque: cela ne fonctionne pas pour le négatif a ou b.
Idée démo ici.
la source
Bash avec Hadoop en streaming
Évidemment,
a
etb
peut devenir vraiment grand. Par conséquent, nous devons utiliser Hadoop!En prime, cette approche implique a
cat
et awc
. Cela devrait être amusant à regarder! Mais je prévois d’utiliser Mahout pour cela à l’avenir (même si j’aime les chats).Ce doit être la solution la plus évolutive que vous obteniez pour cette question. Cependant, je peux imaginer qu'une solution Hadoop récursive est beaucoup plus élégante.
la source
Ignorez tous ces gens stupides avec leurs manières non génériques et indestructibles. Nous avons besoin d'une bibliothèque performante, extensible et simple pour un projet d'une telle envergure. Il doit prendre en charge l’extension et la substitution à chaque endroit du code. Pour cela, nous avons besoin d’un langage également extensible et simple, c’est pourquoi le meilleur candidat est le C # .
C’est la raison pour laquelle je vous présente la version bêta de ma version 0.8.4.4_beta1.3a_rev129857_dist29.12.13 / master de Operable Commons Library Enterprise Edition, qui expose à cette version une
IOperable
interface, uneIAddable
interface vous permettant d’utiliser vos propres méthodes d’ajout efficaces, et une implémentation par défaut deIAddable
:Addable
class, qui utilise l'addition binaire extrêmement efficace, sans tricherie et en utilisant la soustraction native lente pour le report de report. Bien entendu, comme toute bonne bibliothèque, elle est livrée avec une usine pour chaque type prise en charge. La bibliothèque suit également les principes de "manipulez-la vous-même", vous devez donc vous assurer que l'entrée est valide et que la sortie souhaitée est réalisable, car elle ne vérifiera pas les données non valides. La voici (ce code est sous licence de la licence propriétaire Dont-Touch-This Obstructive de Microsoft Corporation en lecture seule, révision 3.1):la source
JavaScript
La programmation est tout au sujet de l'algorithme. Retournons à l'algorithme de base de ce que nous apprenons à l'âge de 3 ans - compter les doigts.
Premièrement, en tant que développeur principal, choisissons un langage judicieux: multiplate-forme, légère et portable.
Deuxièmement, avoir une vision globale. Utilisez Global var.
Troisièmement, ++ s et --s
Comme YFS (You-Finger-System), cela ne supporte pas les nombres négatifs
Enfin, vous pouvez modifier en
FINGER_NUMBER
fonction du nombre de doigts que vous avez.JSFiddle: http://jsfiddle.net/e3nc5/
la source
TI-Basic 83/84
la source
Eh bien, celui-ci est un peu délicat. Heureusement, Python rend les choses relativement simples. Vous aurez besoin de PIL pour faire cela correctement.
Commentaires adaptés de Watterson .
Utiliser intentionnellement le lent
Image.getpixel()
. Je ne suis pas sûr que ce soit assez lent , darnitall. RGBA juste pour prendre de la mémoire supplémentaire.la source
JAVA
Dans le code ci-dessous, ... remplace un code que j'étais trop paresseux pour écrire, mais vous devriez être capable de le comprendre. Pour le faire avec style, il faudrait un programme de génération de code. Les limites 0 et 10 peuvent être changées en n'importe quoi. Plus les limites sont grandes, plus il y a de code et un ordinateur pourrait facilement remplir le ... s.
la source
Lua
la source
Le code est terminé. Soyez très prudent à ce sujet. Ce code est ultra-complexe et a probablement tendance à devenir un être intelligent et conscient. C'est un code top secret hautement classifié.
la source
C ++
Bien sûr, vous aurez besoin de modèles de magie :
la source
JAVA
Problème difficile.
On sait qu'en informatique, il est plus facile de vérifier leurs réponses que de les trouver. Vous devez donc utiliser un algorithme aléatoire pour deviner la solution, puis la vérifier (efficacement!) Et espérer obtenir le bon résultat dans un délai raisonnable:
la source
Cette fonction est sous brevet de mon entreprise, je peux vous en fournir une copie sous licence obfusquée:
Javascript:
Usage:
la source
Python
La programmation concerne la tolérance aux pannes. Ce qui suit est une implémentation de sum qui ajoutera n'importe quoi sans se faire chier. Il va trier de manière transparente les éléments dans l'ordre qui peut être ajouté. Dans le cas où ce n’est pas possible, il le marquera comme
NaN
.la source
Fortran
De toute évidence, le moyen le plus efficace est de déplacer vos bits. Cela peut être facilement fait avec C + Fortran via le
iso_c_binding
module:où est la routine C
Vous devez d'abord compiler le code C (par exemple
gcc -c mycfile.c
), puis le code Fortran (par exemplegfortran -c myf90file.f90
), puis créer l'exécutable (gfortran -o adding myf90file.o mycfile.o
).la source