Tulis program atau fungsi yang diberi n ≥ 1 mengembalikan jumlah solusi menjadi ± 1 ± 2 ± 3 ± ... ± n = 0.
Untuk n = 6 tidak ada solusi, jadi jawabannya adalah 0. Untuk n = 4 ada dua solusi, jadi jawabannya adalah 2 (dua solusi adalah 1 - 2 - 3 + 4 = -1 + 2 + 3 + 4 - 4 = 0).
Ini adalah urutan OEIS A063865 . Beberapa contoh input / outpus adalah:
n a(n)
1 0
2 0
3 2
4 2
5 0
6 0
7 8
8 14
9 0
10 0
11 70
12 124
13 0
14 0
15 722
16 1314
Kode terpendek dalam byte menang.
code-golf
math
arithmetic
orlp
sumber
sumber
Jawaban:
JavaScript (ES6), 35 byte
Disimpan 1 byte berkat @tsh
Cobalah online!
sumber
Bahasa Wolfram (Mathematica) , 33 byte
Menghitung
n
-tupel 1 dan -1 yang memiliki titik produk denganRange[n]
0.Cobalah online!
sumber
Haskell , 42 byte
Cobalah online!
Ini
21 byte lebih pendek dari fungsi rekursif yang bisa saya tulis.sumber
05AB1E , 10 byte
Cobalah online!
Penjelasan
sumber
O_O
...C (gcc),
45625250 bytePelabuhan Kevin Cruijssen Java 8 jawaban .
Cobalah online di sini .
Perhatikan bahwa karena perbaikan yang disarankan dalam komentar, kode menghasilkan perilaku yang tidak terdefinisi sampai tidak berfungsi ketika dikompilasi dengan dentang.
Berkat etene untuk bermain golf 3 byte. Terima kasih kepada Kevin Cruijssen karena bermain golf 10 byte lebih banyak. Terima kasih kepada Christoph untuk bermain golf 2 byte lagi.
Versi tidak disatukan:
sumber
r?0:1
dengan!r
. 42 byter
, yang tidak diizinkan.n=
tidak diperlukan baik:f(n,r){n=n?f(n-1,r+n)+f(n-1,r-n):!r;}F(n){f(n,0);}
.-x = ~x+1
dan karenanya~x = -x-1
.05AB1E ,
98 byteTerima kasih kepada Emigna karena telah menghemat satu byte!
Kode:
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan
sumber
MATL ,
1413 byteTerima kasih kepada @Giuseppe karena menghemat 1 byte!
Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
Pertimbangkan
n = 3
sebagai contoh. Tumpukan ditampilkan terbalik, yaitu, yang terbaru muncul di bawah.sumber
Jelly , 8 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2, 74 byte
Lebih dari pengajuan yang menyenangkan, perhitungan fungsi penghasil langsung
sumber
Oktaf (dengan Paket Komunikasi), 39 byte
Cobalah online!
Penjelasan:
Ambil rentang 0 ... n ^ 2-1 dan ubah menjadi biner. Ini memberikan matriks dengan semua kombinasi 0 dan 1 . Kalikan dengan 2 dan kurangi 1 untuk mendapatkan matriks dengan semua kombinasi -1 dan +1 .
Ambil titik-produk dengan rentang 1 ... n untuk mendapatkan semua kombinasi ± 1 ± 2 ... ± n . Hitung berapa banyak yang nol.
Pada dasarnya hal yang sama, jumlah byte yang sama:
sumber
APL (Dyalog) ,
3122 byte9 byte disimpan berkat @ H.PWiz
Cobalah online!
sumber
Python 2 dan 3, 50 byte
Pendekatan rekursif seperti sebagian besar jawaban:
Cobalah online
Panggilan rekursif ganda terlalu banyak byte ... Mungkin ada cara untuk menyederhanakannya.
sumber
Java 8,
727170 bytePort dari jawaban JavaScript (ES6) @Arnauld .
-2 byte terima kasih kepada @ OlivierGrégoire .
Cobalah online.
Penjelasan:
sumber
Haskell , 55 byte
Pendekatan sederhana menghitung semua jumlah itu dan memeriksa berapa banyak yang nol.
Cobalah online!
EDIT: @ H.PWiz memiliki solusi yang lebih pendek dan jauh lebih elegan menggunakan
mapM
!sumber
Utilitas Bash + GNU, 63 byte
Bash mungkin bisa melakukan lebih baik dari ini dengan fungsi rekursif, tapi saya tidak bisa menahan jenis
eval
/ pelarian / ekspansi semacam ini :Cobalah online!
Pembaruan: Saya tidak berpikir bash dapat melakukan lebih baik dengan fungsi rekursif. Ini adalah yang terbaik yang bisa saya lakukan untuk skor 90 .
eval
neraka itu kalau begitu.sumber
Brachylog , 12 byte
Cobalah online!
Penjelasan
sumber
Oktaf , 42 byte
Cobalah online!
sumber
J , 32 byte
Cobalah online!
Tentu ada banyak ruang untuk bermain golf. Penjelasan akan mengikuti.
sumber
Haskell , 41 byte
Cobalah online!
sumber
0^abs k
.Jelly , 10 byte
Cobalah online!
sumber
Perl 5 ,
-p
35 byteCobalah online!
sumber
Pari / GP , 30 byte
Cobalah online!
sumber
Prolog (SWI) , 99 byte
Cobalah online!
sumber
Pyth,
1413 byteCoba di sini
Penjelasan
sumber
CJam , 25 byte
Cobalah online!
Ini adalah terjemahan yang cukup langsung dari solusi 05AB1E @ emigna. Ini tentu saja golf.
sumber
Stax , 9 byte
Jalankan dan debug itu
Salah satu jawaban terpendek sejauh inidikalahkan oleh Jelly.Saya merasa bahwa secara eksplisit memeriksa tanda-tanda yang menjumlahkan ke nol tidak begitu golf, jadi alih-alih saya mengambil PowerPet dan memeriksa berapa banyak set di PowerPet memiliki jumlah setengah dari jumlah segitiga ke-n. Metode ini, tidak mengherankan, dari kompleksitas waktu yang sama dengan memeriksa tanda-tanda mana yang dijumlahkan menjadi nol.
Setara ASCII:
sumber
Pyth , 10 byte
Cobalah online. Atau, verifikasi semua kasus uji sekaligus .
Penjelasan:
sumber
J , 28 byte
Menggunakan definisi lain dari OEIS di mana
a(n) = coefficient of x^(n(n+1)/4) in Product_{k=1..n} (1+x^k) if n = 0 or 3 mod 4 else a(n) = 0
.Cobalah online!
Penjelasan
sumber
Sekam , 9 byte
Cobalah online!
Penjelasan
sumber
Gol> <> , 26 byte
Cobalah online! atau Jalankan test case dari 1 hingga 16!
Bagaimana itu bekerja
sumber