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
emenjadi elemen saat ini. - Biarkan
randommenghasilkan 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
fpadae.
Objektif
Diberikan array / daftar / string seperti salah satu Adan nomor K, jalankan melalui array, menambah Ksetiap anggota yang diakses. Keluarkan / kembalikan array ini. Ahanya akan berisi bilangan bulat non-negatif, dan Khanya 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]
xsedemikian rupa 0 ≤ x < 1.

[0,1)salah ketik? 2 lagi ...