Monday Mini-Golf: Serangkaian tantangan kode-golf pendek , diposting (mudah-mudahan!) Setiap hari Senin.
Sebuah Fibonacci seperti urutan diperoleh dengan menggunakan metode yang sama seperti yang terkenal deret Fibonacci ; yaitu, setiap angka F (n) ditemukan dengan menambahkan dua angka sebelumnya dalam urutan ( F (n) = F (n-1) + F (n-2) ), atau dengan mengurangi dua angka berikutnya ( F (n) = F (n + 2) - F (n + 1) ). Perbedaan utama adalah bahwa urutan ini dapat dimulai dengan dua angka. Pengindeksan nol urutan ini dapat diperdebatkan, tetapi untuk sekarang, kita akan menggunakan aturan ini:
- Angka 0 dalam urutan seperti Fibonacci adalah angka terakhir yang lebih kecil dari angka sebelumnya.
Sebagai contoh, deret Fibonacci dapat ditulis sebagai 1, 0, 1, 1, 2, 3, 5...
, sehingga angka ke-0 dalam deret itu adalah satu-satunya 0
.
Tantangan
Tujuan dari tantangan ini adalah untuk menulis program atau fungsi yang menggunakan tiga bilangan bulat, dalam format apa pun:
- A dan B , dua angka untuk mulai menghasilkan urutan.
- N , panjang urutan yang dihasilkan ke keluaran.
Dan menampilkan nomor N pertama dari urutan, mulai dari tanggal 0.
Detail
- A , B , dan N dapat diambil dalam urutan dan format apa pun, selama keduanya terlihat terpisah. Jika Anda menggunakan urutan / format yang berbeda, harap tentukan apa itu.
- Anda dapat mengasumsikan bahwa A , B , dan N selalu bilangan bulat positif.
- Anda dapat berasumsi bahwa N tidak lebih dari 100, dan urutan yang dihasilkan tidak akan mengandung
x >= 2^31
. - Jika A lebih besar dari B , maka B adalah angka ke-0 dalam urutan.
- Output harus dipisahkan oleh spasi, koma, dan / atau baris baru.
- Ruang trailing atau baris baru diizinkan, tetapi bukan koma jejak.
Kasus uji
Contoh 1:
8 13 10
Bekerja mundur dari 8 13
sampai kita menemukan angka yang lebih besar dari yang sebelumnya, kita dapatkan 13 8 5 3 2 1 1 0 1
. Jadi, 0
adalah angka ke-0 dalam urutan ini. Bekerja maju dari ini, kami mencetak 0
dan 9 anggota berikutnya:
0 1 1 2 3 5 8 13 21 34
Contoh 2:
23 37 5
Sekali lagi bekerja mundur untuk menemukan nomor 0, kami temukan 37 23 14 9 5 4 1 3
. Angka 0 kali ini 1
, jadi kami mencetaknya, bersama dengan 4 anggota berikutnya:
1 4 5 9 14
Contoh 3:
4 3 8
Dengan ini, kita tidak harus bekerja mundur untuk menemukan angka ke-0, karena 3
lebih kecil dari 4
:
3 7 10 17 27 44 71 115
Contoh 4:
29 47 11
Hasil:
1 3 4 7 11 18 29 47 76 123 199
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek yang valid dalam byte menang. Tiebreaker pergi ke pengajuan diposting sebelumnya. Pemenang akan dipilih Senin depan, 28 Sep. Semoga beruntung!
Sunting: Selamat kepada pemenang Anda, @ Jakube, menggunakan Pyth untuk 23 byte yang luar biasa !
[8, 13, 10]
)?