Urutan N-bonacci, awalnya ditemukan oleh @DJMcMayhem dalam pertanyaan ini , adalah urutan yang dihasilkan dengan memulai dengan bilangan bulat 0 dan 1, dan kemudian menambahkan angka N sebelumnya untuk menghasilkan angka berikutnya. Urutan N-bonacci khusus adalah urutan N-bonacci yang dimulai dengan pasangan angka selain 0 dan 1, yang akan dinamai X dan Y. Jika N lebih besar dari jumlah istilah yang sudah ada dalam urutan, cukup tambahkan semua yang tersedia ketentuan
Jadi misalnya deret fibonacci normal memiliki N of 2 (mengambil dua item sebelumnya), dan X dan Y dari 0 dan 1, atau 1 dan 1, tergantung pada siapa Anda bertanya.
Tugas Anda:
Anda harus menulis sebuah program atau fungsi yang memeriksa apakah integer yang dimasukkan (A) adalah bagian dari urutan N-bonacci khusus yang dihasilkan oleh tiga bilangan bulat berikutnya (menggunakan input kedua sebagai N, dan yang ketiga dan keempat sebagai X dan Y) . Pastikan Anda menangani kasus khusus N = 1.
Memasukkan:
Empat bilangan bulat non-negatif, A, N, X, dan Y.
Keluaran:
Nilai kebenaran / kepalsuan yang menunjukkan apakah A adalah bagian dari urutan N-bonacci yang dihasilkan oleh input N, X, dan Y.
Kasus uji:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
Mencetak:
Ini adalah kode-golf , sehingga skor terendah dalam byte menang.
sumber
N==1
adalah kasus yang aneh.N=1
, Anda mungkin ingin menyebutkannya dalam pertanyaan, karena banyak jawaban (termasuk semua jawaban saat ini, saya pikir) akan memiliki kondisi kegagalan yang mengasumsikan serangkaian peningkatan yang ketat. Juga, bisakahX
danY
menjadi negatif? Itu mungkin juga akan membatalkan semua jawaban yang ada.8,1,8,9
dan9,1,8,9
untuk memastikan bahwaN=1
penanganan kasus mendeteksi nilai yang tidak berulangX
sertaY
nilainya. (Jika Anda ingin menangani0,0
kasus, Anda harus menambahkannya juga.)Jawaban:
Jelly , 12 byte
Sebuah program taking penuh
[X,Y]
,N
,A
.Cobalah online!
Bagaimana?
sumber
⁵e
dari bagian akhir; lebih mudah untuk mengatakan itu akan berhasil saat itu (mencatat bahwa urutan dua istilah pertama tidak ada konsekuensinya).05AB1E , 18 byte
Cobalah online!
Penggunaan:
[X,Y], N, A
Saya merasa beberapa fungsi yang tidak disengaja membuat itu lebih sulit daripada yang seharusnya.
Tidak ada yang lebih besar daripada sama dengan, tidak pernah memperhatikan itu sebelumnya.
Dan
#³
tidak berfungsi, dan membutuhkan]
, untuk +1 byte#]³
.sumber
Python 2 ,
5956 byteCobalah online!
Mengambil input sebagai
A,N,[X,Y]
sumber
Perl 6 , 47 byte
menguji
Diperluas:
sumber
Python 2, 50 byte
Mengambil input sebagai
A,N,[Y,X]
. Keluaran melalui kode keluar.Cobalah online!
sumber
R ,
6960 byteCobalah online!
Mengembalikan fungsi anonim, mengambil
a,n
dan vektorl=c(y,x)
. Membangun urutan N-bonacci ke belakang (yaitu, indeks yang lebih kecil lebih lanjut dalam urutan), karenawhile(l<a)
hanya memeriksa elemen pertamal
.sumber
Gangguan Umum, 164 byte
Fungsi ini mengembalikan
NIL
false, non-NIL untuk true (sesuai dengan definisi boolean umum dari Common Lisp).sumber
N=1
mendeteksiA
, misalnya, keduanya1
dan / atau2
kapanX=1 Y=2
? Keterampilan membaca Lisp saya tidak bagus, tetapi sepertinya Anda hanya dapat membandingkanA
dengan salah satu dari dua nilai awal.k, 29 byte
Cobalah online!
1
adalah kebenaran,0
adalah dusta. Masukan adalah[A;N;X,Y]
.sumber
PHP> = 7.1, 103 Bytes
Testcases
sumber
Mathematica, 94 byte
Masukkan format
sumber