Kita semua sering mendengar ungkapan "berjalan melalui array" berarti "memetakan fungsi di atas array berikut". Namun, saya perlu melakukannya (sekarang!), Jadi saya ingin Anda menjalankan array.
Bagaimana saya berlari?
Bayangkan ada paket liar serigala belakang Anda
Menjalankan melalui array seperti berjalan melalui satu, kecuali Anda dapat melewatkan elemen. Ya, kadang-kadang berantakan, tetapi (umumnya) berfungsi. "Elemen mana yang dilewati?", Anda mungkin bertanya. Nah, ini dilakukan secara acak. Mari kita berjalan melintasi array!
- Membiarkan
e
menjadi elemen saat ini. - Biarkan
random
menghasilkan float acak di[0,1)
. Jikarandom() < 0.5
, maka Anda pergi ke elemen berikutnya dan kemudian ke langkah 1. (Anda dapat menghasilkan angka dengan cara lain, selama mereka adalah (idealnya) kesempatan yang sama untuk melompat dan tetap. Misalnya, Anda dapat menggunakan memilih elemen dari dua anggota mengatur dan melakukan tindakan berdasarkan hasil.) - Jika tidak, Anda melakukan fungsi
f
padae
.
Objektif
Diberikan array / daftar / string seperti salah satu A
dan nomor K
, jalankan melalui array, menambah K
setiap anggota yang diakses. Keluarkan / kembalikan array ini. A
hanya akan berisi bilangan bulat non-negatif, dan K
hanya akan menjadi bilangan bulat non-negatif. Ini adalah kode-golf , sehingga program terpendek dalam byte menang.
Uji kasus (contoh)
K, A => possible K'
[1, 2, 3, 4], 0 => [1, 2, 3, 4]
[1, 2, 3, 4], 1 => [1, 3, 3, 5]
[0, 0, 0, 0], 2 => [2, 0, 0, 2]
x
sedemikian rupa 0 ≤ x < 1
.
[0,1)
salah ketik? 2 lagi ...