Всі ми часто чуємо ідіому "пройти через масив", щоб означати "відображення функції на наступний масив". Однак мені це потрібно (зараз!), Тому я хочу, щоб ти пробігся через масив.
Як я бігаю?
Уявіть, що за вами дика зграя вовків
Бігати по масиву - це як ходити по одному, за винятком того, що ви можете пропустити елементи. Так, іноді безладно, але це (загалом) працює. "Які елементи пропущено?", Ви можете запитати. Ну, це робиться навмання. Давайте пройдемося бігом через масив!
- Дозвольте
eбути поточним елементом. - Нехай
randomгенерує випадковий поплавок у[0,1). Якщоrandom() < 0.5ви переходите до наступного елемента, а потім переходите до кроку 1. (Ви можете створити число іншими способами, якщо їх (в ідеалі) однаковий шанс пропустити і залишитися. Наприклад, ви можете використовувати елемент з двочленний набір і виконайте дію на основі результату.) - В іншому випадку, ви виконуєте функцію
fнаe.
Об'єктивна
З огляду на масив / список / рядок, як будь-який Aі номер K, запустіть масив, додавши Kдо кожного члена, до якого звертається. Виведіть / поверніть цей масив. Aміститиме лише невід'ємні цілі числа, і Kлише колись буде невід'ємними цілими числами. Це кодовий гольф , тому виграє найкоротша програма в байтах.
Тестові приклади (приклади)
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таке, що 0 ≤ x < 1.

[0,1)друкарський помилок? Ще 2…