Masalah:
Saya adalah pengembang utama untuk perusahaan besar, kami membuat Skynet. Saya telah ditugaskan
Tulis fungsi yang menginput dan mengembalikan jumlahnya
ATURAN: Tidak ada jawaban seperti
function sum(a,b){
return "their sum";
}
EDIT: Jawaban yang diterima akan menjadi yang paling banyak mendapat dukungan pada 1 Januari 2014
Catatan: Ini adalah pertanyaan troll kode . Tolong jangan menganggap pertanyaan dan / atau jawaban dengan serius. Informasi lebih lanjut di sini .
popularity-contest
code-trolling
scrblnrd3
sumber
sumber
$.sum=function(a,b){return a+b};
.'SELECT ' + a + ' + ' + b + ';'
. Sederhana dan mudah dimengerti.Jawaban:
Cara kode ini bekerja (saya tidak akan menambahkan penjelasan ini dalam jawaban saya ke OP malas yang harus dikendalikan, jangan khawatir):
((a & ~877 - b ^ 133 << 3 / a) & ((a - b) - (a - b))) | a
mengembalikan adila
dan((b ^ (a < 0 ? b : a)) & ((b - a) - (b - a))) | b
mengembalikan adilb
.6755 & 1436
kembali0
, jadi dalam loop,i
sebenarnya dimulai dengan nilai0
, dan di dalam loop, Anda menambahkan nilai1
ke daftar. Jadi, jikaa
ini5
danb
adalah3
, nilai1
ditambahkan 8 kali ke dalam daftar.The
importantCalculation
fungsi fungsi yang sangat panjang yang tidak apa-apa lain daripada menambahkan dua nomor. Anda menggunakanAggregate
fungsi LINQ untuk menambahkan semua angka. Ini juga tidak perlu untuk melemparkan hasilConvert.ToInt32
keint
, karena sudah menjadiint
.Kode ini adalah sesuatu yang tidak dimengerti OP yang malas, yang persis seperti kehebatan :-)
sumber
6755 & 1436
perilaku tidak terdefinisi, terlepas dari persepsi OP bahwa sebagian besar angka tampaknya berfungsi ...var x = Sum(0, 4)
DivideByZeroException.Bash - 72 byte
Kadang-kadang teknik penambahan deterministik tradisional terlalu tepat, dan tidak perlu cepat - ada kalanya Anda ingin memberikan CPU sedikit istirahat.
Memperkenalkan algoritma SleepAdd lossy .
Contoh dijalankan:
Fungsi ini dimaksudkan sebagai pendamping SleepSort yang dihormati . Ini dibiarkan sebagai latihan bagi pembaca untuk mengadaptasi algoritma ini untuk membuat SleepMax yang lossy untuk mendapatkan yang lebih besar dari dua angka.
Pro Tip: Algoritma ini dapat lebih dioptimalkan - peningkatan kecepatan 2x dimungkinkan, jika angka yang diberikan dibagi 2 lebih dulu.
sumber
Jawa
Ini pada dasarnya menulis file dengan jumlah byte yang harus sama dengan jumlah aktual. Ketika file ditulis, ia meminta tabel file disk untuk ukuran file itu.
sumber
write
atauflush
melempar? Bagi saya sepertinya Anda harus pindahflush
ke setiap loop, dan membungkus semuanya dalam try-catch untuk mencoba kembali menulis jika gagal atau gagal.C
Di dunia kuantum Anda tidak dapat bergantung pada operator atom seperti
+
, inilah penerapan tambahan saya dalam hal komputasi kuantum:sumber
Haskell
Menghitung solusi yang benar dalam waktu O (n ^ 2) . Berdasarkan fungsi aplikatif yang juga menerapkan
Alternative
.Contoh:
daSum [1,2,3,4,5]
hasil 15.Pembaruan: Cara kerjanya: Angka a direpresentasikan sebagai xin polinomial . Daftar angka a1, ..., aN kemudian direpresentasikan sebagai perluasan dari (x-a1) (x-a2) ... (x-aN) . Jumlah dari angka-angka tersebut kemudian koefisien dari tingkat tertinggi kedua. Untuk lebih jauh mengaburkan ide, polinomial direpresentasikan sebagai fungsi alternatif aplikatif + yang tidak benar-benar memiliki nilai, hanya mengkodekan polinomial sebagai daftar angka (isomorfik ke
Constant [n]
). The aplikatif operasi kemudian sesuai dengan perkalian polinomial dan alternatif operasi penambahan (dan mereka mematuhi untuk aplikatif / alternatif hukum juga).Jumlah angka kemudian dihitung sebagai pemetaan setiap angka ke dalam polinomial yang sesuai dan kemudian melintasi daftar menggunakan
Poly
frunctor aplikatif, yang menghitung produk dari polinomial, dan akhirnya mengekstraksi koefisien yang tepat pada akhirnya.sumber
Anda ingin menambahkan angka ?!? Anda sadar bahwa ini adalah tindakan yang sangat rumit? OK, di sisi lain, Anda adalah pengembang utama, Anda harus menghadapi masalah seperti ini.
Ini adalah solusi paling sederhana yang bisa saya temukan:
Jangan menjadi mangsa operator "+", ini sama sekali tidak efisien. Jangan ragu untuk memutar operator "menuju" atau menggunakannya untuk jumlah yang lebih kecil semakin besar.
sumber
NODE.JS - EDM SUMMMMYYMYYMY / IBM® Javascript Enterprise SUM Solution ™
Wow, ini pertanyaan yang sangat sulit, tetapi saya akan mencoba yang terbaik untuk menjawab ini.
LANGKAH SATU - Server TELNET
Pertama-tama kita harus menerima input, sekarang setiap programmer pro dan perusahaan (seperti saya) harus tahu cara terbaik untuk menerima input adalah dengan mengatur server telnet !!!
Mari kita mulai dengan server telnet dasar:
Sebenarnya tidak ada sesuatu yang istimewa untuk itu, ini adalah Anda server telnet yang khas. Kami telah membuat beberapa fungsi pembersihan dasar UNICODE untuk memberikan kami string mentah yang bagus dan kami juga menambahkan
SUM
fungsi .Sekarang pengguna harus memasukkan 'SUM'. Ini kemudian akan meminta mereka untuk masuk
teh numberz
, setelah memasukkan fungsi summm () dijalankan dan akan menghitung jumlah semua angka yang dimasukkan.LANGKAH DUA - summm
Sekarang saatnya untuk membuat
summm
fungsi kita yang akan mendapatkan jumlah semua angka yang dimasukkan.Ini kodenya:
Dan begitulah. Ini adalah Solusi IBM harian Anda. TELNET POWER ALL THE WAY!
Pertama Anda masuk SUM.
Server kemudian akan meminta nomor yang ingin Anda tambahkan, dan Anda dapat memasukkannya:
a, b, c, etc..
Percayalah pada yang ini, semua botnet menggunakan IBM® Javascript Enterprise SUM Solution ™ hari ini;).
Dan ini adalah bukti bahwa semuanya berfungsi:
(DEKAT)
sumber
Inilah solusi di Jawa untuk Anda. Itu bergantung pada "teorema monyet tak terhingga" yang telah teruji waktu: jika Anda berada di sebuah ruangan dengan monyet tak terbatas, Anda akan berakhir dalam kotoran terlempar. Atau semacam itu.
sumber
return sum(a-number, b+number);
denganreturn sum(sum(a,-number), sum(b,number));
. Anda harus makan makanan anjing Anda sendiri, kan?b+number
, maka jelas bahwa seluruh metode tidak perlu. Lebih baik mengaburkan itu. Plus itu akan membuatnya lebih lambat.C - pembunuhan berlebihan adalah yang terbaik
Komputer hanya memiliki 0s dan 1s, jadi sebenarnya sangat sulit untuk menerapkan solusi yang tepat, cepat, dan dapat diskalakan untuk cara menambahkan. Beruntung bagi Anda, saya mengembangkan skynet 0.1284a, jadi saya tahu bagaimana menyelesaikan masalah berbahaya ini.
Biasanya, Anda harus membeli DLC library standar C, karena intinya tidak berisi itu, tapi saya berhasil "menipu" jalan keluar saya. Singkatnya, ini adalah metode termurah dan paling efektif.
Lihat saja itu. Jelas itu jahat.
sumber
Python
Menggunakan identitas matematika
log(ab) = log(a) + log(b)
untuk solusi yang berfungsi untuk jumlah kecil, tetapi meluap untuk aplikasi praktis apa pun.Dengan demikian memastikan bahwa pemrogram malas kami akan berpikir itu berfungsi pada data uji, hanya untuk membuatnya crash di dunia nyata.
sumber
from functools import reduce
untuk python3.C #
Anda harus menggunakan rekursi untuk menyelesaikan masalah Anda
Jika itu cukup baik untuk Peano, itu cukup baik untuk semua orang.
sumber
++a
bukana++
? (Editan harus minimal 6 karakter, apakah ada sesuatu yang lain untuk meningkatkan dalam posting ini?) Bodoh bodoh bodoh bodoh SOC ++
Kami berharap operasi seperti penambahan menjadi sangat cepat. Banyak jawaban lain tidak cukup berkonsentrasi pada kecepatan. Inilah solusi yang hanya menggunakan operasi bitwise , untuk kinerja maksimum.
sumber
Solusi terbaik saya sejauh ini, memberikan jawaban yang cukup sulit dipahami sampai Anda menjalankan
aVeryLargeNumber()
sumber
aVeryLargeNumber()
: Ini mengembalikan 1. (Saya akan menghapus ini jika OP ping saya.)C ++ - Angka Peano dengan metaprogramming template (dengan doge opsional)
Dan untuk bagian yang serius:
Teman-teman saya menyuruh saya untuk membuat kode, jadi saya melakukannya. Ini menyenangkan, tetapi saya pikir ini terlalu jauh dari kenyataan bahwa ini benar-benar bodoh, jadi saya hanya memasukkannya sebagai tautan.
sumber
Saya berhenti mempercayai komputer ketika saya belajar tentang kesalahan floating point.
JavaScript ini bergantung pada pemeriksaan kesalahan manusia yang tepat:
sumber
"Tulis fungsi yang menginput dan mengembalikan jumlah mereka."
Baik:
sumber
Java atau C-style. Ini adalah O (log n). Catatan: Ini tidak berfungsi untuk a atau b negatif.
Demo Ideone di sini.
sumber
Bash dengan Hadoop Streaming
Jelas,
a
danb
bisa menjadi sangat besar. Karena itu, kita harus menggunakan Hadoop!Sebagai bonus tambahan, pendekatan ini melibatkan a
cat
dan awc
. Ini seharusnya menyenangkan untuk ditonton! Tapi saya berencana menggunakan Mahout untuk ini di masa depan (walaupun saya suka kucing).Ini harus menjadi solusi terukur yang Anda dapatkan untuk pertanyaan ini. Namun, saya dapat membayangkan bahwa solusi Hadoop rekursif jauh lebih elegan.
sumber
Abaikan semua orang bodoh itu dengan perilaku non-generik dan tidak bisa ditebak. Kami membutuhkan perpustakaan yang berkinerja tinggi, dapat diperluas, dan sederhana untuk proyek dengan skala seperti itu. Itu harus mendukung ekstensi dan substitusi di setiap titik kode. Untuk itu, kita memerlukan bahasa yang sama-sama dapat diperluas dan sederhana, itu sebabnya kandidat terbaik adalah C # .
Inilah sebabnya saya menyajikan versi beta dari Operable Commons Library Enterprise Edition saya, versi 0.8.4.4_beta1.3a_rev129857_dist29.12.13 / master , yang pada versi ini memperlihatkan
IOperable
antarmuka,IAddable
antarmuka sehingga Anda dapat menggunakan metode penambahan efisien Anda sendiri, dan implementasi standarIAddable
:Addable
kelas, yang menggunakan penambahan bitwise yang sangat efisien, tanpa curang dan menggunakan pengurangan asli yang lambat untuk carry shifting. Tentu saja, seperti perpustakaan yang baik, ia dilengkapi dengan pabrik untuk setiap jenis yang didukungnya. Perpustakaan juga mengikuti prinsip-prinsip "tangani sendiri", jadi Anda harus menjamin bahwa input tersebut valid dan bahwa output yang diinginkan layak, karena tidak akan memeriksa data yang tidak valid. Ini dia (Kode ini dilisensikan di bawah Microsoft Corporation Read-Only Proprietary Dont-Touch-Lisensi Obstruktif Ini, Revisi 3.1):sumber
JavaScript
Pemrograman adalah semua tentang algoritma. Mari kita kembali ke algoritma dasar apa yang kita pelajari pada usia 3 - menghitung jari.
Pertama, sebagai pengembang utama, mari kita memiliki pilihan bahasa yang bijak - lintas platform, ringan dan portabel.
Kedua, memiliki visi global. Gunakan Global var.
Ketiga, ++ s dan --s
Sama seperti YFS (You-Finger-System), ini tidak mendukung angka negatif
Akhirnya, Anda dapat mengubah
FINGER_NUMBER
sesuai dengan jumlah jari yang Anda miliki.JSFiddle: http://jsfiddle.net/e3nc5/
sumber
TI-Basic 83/84
sumber
Nah, yang ini agak sulit. Untungnya, Python membuatnya cukup mudah. Anda perlu PIL untuk melakukan ini dengan benar.
Komentar diadaptasi dari Watterson .
Sengaja menggunakan lambat
Image.getpixel()
. Saya tidak yakin itu sebenarnya cukup lambat , meskipun, sangat. RGBA hanya untuk mengambil memori ekstra.sumber
JAWA
Dalam kode di bawah ini, ... berarti kode yang saya terlalu malas untuk menulis tetapi Anda harus bisa mengetahuinya. Untuk benar-benar melakukan ini dengan gaya, akan memerlukan program pembuatan kode. Batas 0 dan 10 dapat diubah menjadi apa pun. Semakin besar batas semakin banyak kode dan komputer dapat dengan mudah mengisi ... s.
sumber
Lua
sumber
Kode sudah selesai. Berhati-hatilah dengan itu. Kode ini sangat kompleks dan mungkin cenderung menjadi makhluk yang sadar dan sadar diri yang cerdas. Ini adalah kode rahasia sangat rahasia.
sumber
C ++
Tentu saja Anda akan memerlukan beberapa templat ajaib :
sumber
JAWA
Masalah sulit.
Diketahui bahwa dalam ilmu komputer ada masalah yang memverifikasi jawaban mereka lebih mudah daripada menemukannya. Jadi, Anda harus menggunakan algoritma acak untuk menebak solusi, lalu verifikasi (efisien!), Dan berharap untuk mendapatkan hasil yang tepat dalam waktu yang wajar:
sumber
Fungsi ini di bawah paten perusahaan saya, saya dapat memberikan Anda salinan berlisensi yang dikaburkan:
Javascript:
Pemakaian:
sumber
Python
Pemrograman adalah tentang toleransi kesalahan. Berikut ini adalah implementasi dari jumlah yang akan menambah apa pun tanpa repot. Ini akan secara transparan mengurutkan elemen dalam urutan yang dapat ditambahkan. Dalam hal, itu tidak dapat ditambahkan, itu akan menandainya sebagai
NaN
.sumber
Fortran
Jelas cara yang paling efisien adalah dengan menggeser bit Anda. Ini dapat dengan mudah dilakukan dengan C + Fortran melalui
iso_c_binding
modul:dimana rutin C berada
Anda perlu mengkompilasi kode C terlebih dahulu (misalnya,
gcc -c mycfile.c
) kemudian mengkompilasi kode Fortran (misalnya,gfortran -c myf90file.f90
) dan kemudian membuat executable (gfortran -o adding myf90file.o mycfile.o
).sumber