Untuk tantangan ini, Anda harus menampilkan hasil dari jumlah beberapa angka. Berapa angka-angka ini? Nah, Anda diberi input, ( a
, b
), yang merupakan bilangan bulat (positif, negatif, atau nol) a != b
, dan a < b
, dan setiap bilangan bulat di dalam a
dan b
(termasuk mereka) akan memiliki eksponen sesuai dengan angka Fibonacci. Itu membingungkan jadi inilah contohnya:
Input: (-2, 2)
Output: -2**1 + (-1**1) + 0**2 + 1**3 + 2**5 =
-2 + -1 + 0 + 1 + 32 = 30
Mengingat bahwa angka Fibonacci pertama diwakili oleh f(0)
, rumusnya adalah:
a**f(0) + ... + b**f(b-a+1)
Input, Pemrosesan, Output
Untuk memperjelas hal di atas, berikut adalah beberapa kasus uji, pemrosesan input, dan output yang diharapkan:
Input: (1, 2)
Processing: 1**1 + 2**1
Output: 3
Input: (4, 8)
Processing: 4**1 + 5**1 + 6**2 + 7**3 + 8**5
Output: 33156
Input: (-1, 2)
Processing: -1**1 + 0**1 + 1**2 + 2**3
Output: 8
Input: (-4, -1)
Processing: -4**1 + -3**1 + -2**2 + -1**3
Output: -4
Aturan
Tidak ada celah standar yang diizinkan
Eksponen harus dalam urutan sesuai dengan seri Fibonacci
Kode harus berfungsi untuk kasus uji di atas
Hanya output yang perlu dikembalikan
Kriteria Menang
Kode terpendek menang!
0
tidak termasuk dalam angka fibonacci di sini?Jawaban:
05AB1E , 9 byte
Cobalah online!
Tidak berfungsi pada TIO untuk perbedaan besar antara
a
danb
(EG[a..b].length() > 25
).Tetapi tampaknya itu bekerja untuk angka yang lebih besar daripada jawaban rata-rata di sini.
Tidak efisien, karena menghitung urutan fibonacci hingga
n!
, yang lebih dari yang diperlukan untuk menghitung jawabannya, di manan
panjang urutana..b
.sumber
Mathematica,
38 byte37 byte31 byteIni hanyalah jawaban rahnema1 yang diangkut ke Mathematica. Di bawah ini adalah solusi asli saya:
Penjelasan:
##
mewakili urutan semua argumen,#
mewakili argumen pertama,#2
mewakili argumen kedua. Saat dipanggil dengan dua argumena
danb
,Range[##]
akan memberikan daftar{a, a+1, ..., b}
danRange[#2-#+1]
akan memberikan daftar dengan panjang yang sama{1, 2, ..., b-a+1}
. KarenaFibonacci
iniListable
,Fibonacci@Range[#2-#+1]
akan memberikan daftarb-a+1
angka Fibonacci pertama . KarenaPower
ituListable
, memanggilnya pada dua daftar dengan panjang yang sama akan memasangnya di atas daftar. KemudianTr
ambil jumlahnya.Sunting: Disimpan 1 byte berkat Martin Ender.
sumber
Range@##
.Tr[(r=Range@##)^Fibonacci[r-#+1]]&
.Range
dua kali seharusnya merupakan bendera merah. Terima kasih!Python , 49 byte
Sebuah lambda rekursif yang mengambil
a
danb
sebagai argumen terpisah (Anda juga dapat mengatur dua angka pertama dari fibonacci,x
dany
, untuk apa pun yang Anda inginkan - tidak disengaja, tetapi fitur yang bagus):Cobalah online! (termasuk test suite)
Saran bermain golf diterima.
sumber
-~a
dan tidak sederhanaa+1
? Saya pikir-~a
ini tergantung mesin.Perl 6 ,
3230 byte$^a
dan$^b
adalah dua argumen untuk fungsi tersebut;$^a..$^b
adalah rentang angka dari$^a
hingga$^b
, yang di-zip dengan eksponensial denganZ**
dengan urutan Fibonacci1, &[+] ... *
,.Terima kasih kepada Brad Gilbert karena telah memangkas dua byte.
sumber
(1,&[+]...*)
lebih pendek satu byte, dan spasi sesudahnyaZ**
tidak diperlukan.&infix:<+>
dapat menerima 0,1 atau 2 argumen. (&[+]
Adalah cara singkat menulis&infix:<+>
). The Apapun Kode* + *
menerima tepat 2 argumen. (&[0]() == 0
jadi Anda harus memiliki di1
sana untuk memulai urutan)Maxima, 32 byte
sumber
Pyke, 11 byte
Coba di sini!
sumber
JavaScript (ES7), 42 byte
Port langsung ke jawaban Python yang sangat bagus dari @ FlipTack.
sumber
Haskell, 35 byte
Pemakaian:
sumber
o
menjadi operator infiks, sepertia#b=sum...
.(a,b)
sebagaia?b
maka mengapa tidak kita diperbolehkan untuk mempersiapkan sebagai segera[a..b]?f
ke(?)=sum.zipWith(^)
?MATL , 23 byte
Cobalah online! Atau verifikasi semua kasus uji .
sumber
R, 51 byte
Fungsi anonim.
sumber
Jelly , 13 byte
Cobalah online!
sumber
f(1,25)
karya;). +1Ruby, 46 byte
Tidak ada yang pintar atau orisinal untuk dilihat di sini. Maaf.
sumber
ℤ.upto(ℤ)
metode ini merupakan pengingat yang bagus tentang keindahan perilaku semua objek Ruby. Selanjutnya golf kode dibiarkan sebagai latihan untuk penutur Ruby asli. Sudahkah Anda memindai codegolf.stackexchange.com/questions/363/... ?Java 7, 96 byte
Golf:
Tidak Disatukan:
sumber
R, 57 byte
Cukup mudah.
gmp::fibnum
adalah built-in yang lebih pendek, tetapi tidak mendukung mengembalikan seluruh urutan hinggan
, yangnumbers::fibonacci
tidak dengan menambahkan argumenT
.Pertama saya punya solusi yang lebih rumit
gmp::fibnum
yang berakhir 2 byte lebih lama dari solusi ini.sumber
scan()
menyimpan 6 byte; lihat solusi saya yang diposting.dc , 56 byte
Selesai untuk input
[1,30]
dalam 51 detik. Mengambil dua input pada dua baris terpisah yang pernah dieksekusi dan angka negatif dengan garis bawah (_
) sebagai ganti tanda hubung (yaitu-4
input sebagai_4
).sumber
PHP,
7775 bytemengambil batasan dari argumen baris perintah. Jalankan dengan
-nr
.menampilkan variabel variabel PHP lagi (dan apa yang saya ketahui tentang mereka .
kerusakan
Jawaban FlipTack yang di- porting ke PHP memiliki 70 byte:
sumber
Aksioma, 65 byte
kode uji dan hasil
sumber
PowerShell , 67 byte
Cobalah online!
Menemukan cara yang sedikit lebih baik untuk melakukan urutan, tetapi PowerShell tidak dibandingkan dengan bahasa lain untuk yang satu ini :)
sumber