Saya telah menelusuri situs ini untuk sementara waktu, tetapi baru-baru ini saya benar-benar tertarik untuk mencoba beberapa tantangan. Saya berniat untuk mencoba beberapa topik kode-golf yang ada, tetapi saya tidak memiliki akses Internet untuk sementara waktu kemarin, dan sementara itu, saya memikirkan tantangan saya sendiri.
Tugas Anda adalah membuat program atau fungsi yang mengambil array Mengapung a
dan integer n
, kemudian menetapkan setiap nilai a
ke rata-rata dari dua di sampingnya, n
kali. Ketika berulang kali digunakan dengan peningkatan nilai n
, ini menghasilkan gerakan seperti gelombang:
Spesifik:
- Jika hanya ada satu item
a
, atau jikan
0 atau kurang, program harus mengembalikan array asli. - Input dan output dapat dalam format apa pun yang Anda inginkan, selama mereka terlihat terpisah.
Untuk setiap langkah:
- Item pertama di
a
harus menjadi rata-rata dari dirinya sendiri dan item berikutnya. - Item terakhir di
a
harus menjadi rata-rata dari dirinya sendiri dan item sebelumnya. - Item lain dalam
a
harus menjadi rata-rata item sebelumnya dan item berikutnya. - Pastikan Anda menghitung larik langkah sebelumnya dan bukan yang sekarang!
Kasing uji: CATATAN: Input / output Anda tidak harus dalam format ini!
[0, 0, 1, 0, 0], 1 -> [0, 0.5, 0, 0.5, 0]
[0, 0, 1, 0, 0], 2 -> [0.25, 0, 0.5, 0, 0.25]
[0, 0, 1, 0, 0], 0 -> [0, 0, 1, 0, 0]
[0, 0, 1, 0, 0], -39 -> [0, 0, 1, 0, 0]
[0, 16, 32, 16, 0], 1 -> [8, 16, 16, 16, 8]
[0, 1, 2, 3, 4, 5], 1 -> [0.5, 1, 2, 3, 4, 4.5]
[0, 64], 1 -> [32, 32]
[0], 482 -> [0]
[32, 32, 32, 16, 64, 16, 32, 32, 32], 4 -> [33, 27, 40, 22, 44, 22, 40, 27, 33]
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang. Pemenang akan dipilih dalam satu minggu (pada 1 Agustus). Semoga berhasil!
Sunting: Selamat kepada pemenang, @issacg , dengan total 18 byte!
n
harus 4, bukan 5.
n
tidak disediakan dana
tidak disediakan kasus - mereka tidak terlalu banyak menambah