Tất cả chúng ta thường nghe thành ngữ "đi qua mảng" có nghĩa là "ánh xạ hàm qua mảng sau". Tuy nhiên, tôi cần nó được thực hiện (ngay bây giờ!), Vì vậy tôi muốn bạn chạy qua mảng.
Làm thế nào để tôi chạy?
Hãy tưởng tượng có một bầy sói hoang đằng sau bạn
Chạy qua một mảng giống như đi qua một mảng, ngoại trừ bạn có thể bỏ qua các phần tử. Vâng, đôi khi nó lộn xộn, nhưng nó (nói chung) hoạt động. "Những yếu tố nào bị bỏ qua?", Bạn có thể hỏi. Vâng, điều này được thực hiện ngẫu nhiên. Hãy đi bộ chạy qua mảng!
- Hãy
e
là yếu tố hiện tại. - Hãy
random
tạo một float ngẫu nhiên trong[0,1)
. Nếurandom() < 0.5
, sau đó bạn chuyển phần tử tiếp theo và sau đó đến bước 1. (Bạn có thể tạo số bằng các phương tiện khác, miễn là chúng có cơ hội (lý tưởng) bằng nhau bỏ qua và còn lại. Ví dụ: bạn có thể sử dụng chọn một phần tử từ một thiết lập hai thành viên và thực hiện hành động dựa trên kết quả.) - Nếu không, bạn thực hiện chức năng
f
trêne
.
Mục tiêu
Đưa ra một mảng / danh sách / chuỗi như một A
và một số K
, chạy qua mảng, thêm K
vào từng thành viên được truy cập. Đầu ra / trả về mảng này. A
sẽ chỉ chứa các số nguyên không âm và K
sẽ chỉ là một số nguyên không âm. Đây là một môn đánh gôn , vì vậy chương trình ngắn nhất tính bằng byte sẽ thắng.
Các trường hợp thử nghiệm (ví dụ)
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
như vậy 0 ≤ x < 1
.
[0,1)
lỗi đánh máy? Còn 2 chuyến nữa ...