Menerapkan fungsi dif yang diambil sebagai input tiga bilangan bulat x, y, dan z. Itu harus mengembalikan apakah mengurangi salah satu dari angka-angka ini dari yang lain memberi yang ketiga.
Test cases:
diff(5, 3, 2) yields True because 5 - 3 = 2
diff(2, 3, 5) yields True because 5 - 3 = 2
diff(2, 5, 3) yields True because 5 - 3 = 2
diff(-2, 3, 5) yields True because 3 - 5 is -2
diff(-5, -3, -2) # -5 - -2 is -3
diff(2, 3, -5) yields False
diff(10, 6, 4) yields True because 10 - 6 = 4
diff(10, 6, 3) yields False
Anda tidak harus menyebutkan nama fungsinya, Anda dapat menerapkan metode input default, contoh di atas bukan pedoman yang ketat.
Jawaban:
Jelly ,
53 byteTerima kasih kepada @ Sp3000 untuk menghemat dua byte!
Kode, menggunakan algoritma yang cukup sama dengan jawaban luar biasa @ xnor :
Penjelasan:
Ini memberikan
[]
kepalsuan, dan hal lain sebagai kebenaran.Cobalah online!
sumber
Python 3, 21 byte
Jika dua angka menambah yang lain, jumlah ketiganya akan menjadi dua kali lipat dari angka lainnya, jadi setengah dari jumlah tersebut akan menjadi elemen dari daftar. Python 3 diperlukan untuk menghindari pembagian lantai, kecuali jika angka diberikan seperti
3.0
bukan3
.sumber
ES6, 31 byte
Tambahkan 5 byte jika Anda perlu memberi nama fungsi
diff
.Sunting: Disimpan 2 byte berkat @Alex L.
sumber
||
dengan|
(saya pikir)|
mengembalikan boolean jika dan hanya jika kedua nilai tersebut adalah booleans. Jaditrue | false == true
, tapi3 | 5 == 7
. Hal yang sama berlaku&&
dan&
. Satu-satunya perbedaan antara|
dan||
ketika datang ke boolean:|
akan mengambil nilai pertama dan nilai kedua dan menemukan OR dari keduanya.||
akan mengambil nilai pertama; jika itu benar, kembalikantrue
, jika tidak, kembalikan nilai kedua.true | false
mengevaluasi ke 1 dalam JavaScript (yang benar, tetapi tidak Boolean).APL,
85 byteIni adalah kereta fungsi monadik yang menerima larik dan mengembalikan boolean (0/1 dalam APL). Ia menggunakan algoritma yang sama dengan xnor's Python 3 answer .
Penjelasan:
Cobalah online
Disimpan 3 byte berkat Dennis!
sumber
JavaScript ES6,
383433 byteFungsi anonim yang sangat sederhana, dan meminjam dari jawaban Python. Mengambil input
x
sebagai array; mengembalikantrue
ataufalse
. Byte dicukur menjadi Molarmanful dan jrichProgram 38 byte, mengambil setiap angka sebagai argumen:
sumber
x=>x.some(a=>a==eval(x.join`+`)/2)
, yang menghemat 4 byte.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
sepertinya berhasil.Oracle SQL 11.2, 49 byte
Menulis ulang solusi @xnor, pujian kepadanya.
sumber
J, 6 byte
Cobalah dengan J.js .
Bagaimana itu bekerja
sumber
DUP , 31 karakter / 39 byte
Try it here!
Pengajuan DUP pertama saya! Unicode adalah tirammu.
Ini adalah fungsi anonim / lambda. Pemakaian:
Penjelasan
sumber
ø
memiliki titik kode 248, jadi satu byte jika disandikan sebagai ISO 8859-1.Java 7, 81
sumber
Perl 6,
2019 byteSaya memiliki dua fungsi yang sama dalam jumlah byte, jadi saya akan menempatkan keduanya. Hargai siapa pun yang menggelitik kesukaan Anda.
Penggunaan: tetapkan salah satu ke variabel dari mana Anda dapat memanggilnya.
EDIT: Terima kasih @ b2gills untuk pengurangan byte
sumber
{@_∋@_.sum div 2}
dan{@_∋+~(@_.sum/2)}
keduanya lebih pendek∋
harus dilakukanJava 8 (fungsi lambda), 29 byte
Solusi Java code golf biasanya hanya singkat ketika program tidak harus menjadi program yang berfungsi penuh. (* Batuk batuk * deklarasi kelas, metode utama)
sumber
Pyth, 6 byte
Cobalah online!
Mengharapkan input sebagai daftar bilangan bulat. Output 0 jika tidak ada angka yang dapat dibangun dengan mengurangi dua lainnya dan> 0 jika setidaknya satu bisa.
Penjelasan:
Algoritma yang sama dengan jawaban @xnor
sumber
05AB1E , tidak bersaing
4 byte , tidak bersaing karena hal yang bodoh. Kode:
Menggunakan 0 sebagai falsy dan> 0 sebagai benar. Menggunakan pengodean CP-1252.
sumber
;
membagi dua bagian atas tumpukan. Tapi coba tebak, saya belum pernah menerapkannya -_-.Kona 16 karakter
Mengambil vektor dari tumpukan, menjumlahkannya, membaginya dengan 2 dan menentukan apakah itu ada dalam vektor. Mengembalikan 1 sebagai kebenaran dan 0 sebagai falsey.
Dipanggil via
sumber
jq, 17 karakter
(Namun menulis ulang lain xnor 's Python 3 jawaban . Upvotes harus pergi ke satu itu.)
Input: array 3 bilangan bulat.
Contoh dijalankan:
Tes online:
jq, 18 karakter
(17 karakter kode + 1 opsi opsi perintah karakter.)
Input: daftar 3 bilangan bulat.
Contoh dijalankan:
sumber
MATL , 5 byte
Menggunakan pendekatan hebat @ xnor :
Cobalah online!
Pendekatan brute-force, 12 byte :
Cobalah online!
sumber
𝔼𝕊𝕄𝕚𝕟, 7 karakter / 9 byte
Try it here (Firefox only).
Ah. Saya masih menemukan cara yang lebih baik. Ini hanya algoritma luar biasa @ xnor.
sumber
CJam, 10
12byte2 byte dihapus berkat @ MartinBüttner.
Ini menampilkan angka sebagai hasil yang benar, dan tidak ada hasil sebagai hasil yang palsu.
Coba di sini
sumber
Serius, 6 byte
Menghasilkan 0 jika false dan bilangan bulat positif sebaliknya.
sumber
Mathematica,
2019 byteBerfungsi serupa dengan sebagian besar jawaban lainnya.
sumber
MemberQ[2{##},+##]&
? (dan Anda lupa jumlah byte Anda)Haskell, 20 byte
Menggunakan solusi xnor.
sumber
(/)
tidak berfungsi untuk bilangan bulat dan tantangannya meminta bilangan bulat, saya tidak yakin ini sebenarnya solusi yang valid.(\l->sum l/2`elem`l).map fromInteger
dan dapat digunakan seperti ini:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Saya kira apa yang membuat saya marah adalah xnor atau menyebutkan penggunaan python 3 sehingga input tidak harus 3.0 bukan 3. Saya pikir tipe input tidak ditentukan, seperti cara mereka ditulis ...sum
atau tidakelem
akan bekerja, saya mungkin harus menentukan itu adalah daftar tetapi karena jawaban ini secara harfiah apa yang xnor kirimkan (dalam Haskell) saya tidak berpikir itu perlu. :)Perl, 24 + 4 = 28 byte
Membutuhkan
-paX
bendera untuk dijalankan, dicetak1
sebagai Benar dan tidak ada yang Salah:-X
menonaktifkan semua peringatan.sumber
$_=eval(y/ /+/r)/2~~@F
(menggunakan opsi baris perintah yang sama).tr
:)-X
dengan menentukan beberapa versi Perl [5.10 .. 5.18). (Pertandingan pintar diperkenalkan pada 5.10 dan peringatan eksperimental diperkenalkan pada 5.18. Versi mana pun di antara keduanya akan bekerja dengan baik~~
tanpa-X
.)Jolf, 6 byte
Coba di sini!
Ini adalah solusi hebat xnor untuk masalah ini, tetapi di Jolf.
sumber
Tiang , 8
Namun implementasi lain dari algoritma xnor.
Bagaimana itu bekerja:
sumber
SpecBAS - 36 byte
Menggunakan rumus xnors
menghasilkan 1 jika benar dan 0 jika salah
sumber
05AB1E ,
65 byte-1 byte dengan membuat port dari algoritma Python 3 @xnor .
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Saya cukup yakin
м_O
dapat dipersingkat, tapi saya tidak yakin perintah mana yang harus saya gunakan untuk itu ..sumber
R , 23 byte
Cobalah online!
Port jawaban xnor yang tak tahu malu .
sumber