Tôi đã cuộn quanh trang web này một thời gian, nhưng gần đây mới thực sự quan tâm đến việc thực sự thử một số thử thách. Tôi đã có ý định thử sức mình với một số chủ đề golf-code hiện có, nhưng tôi đã không truy cập Internet trong một ngày hôm qua, và trong lúc đó, tôi đã nghĩ ra thử thách của riêng mình.
Nhiệm vụ của bạn là tạo ra một chương trình hoặc hàm lấy một mảng Floats a
và một số nguyên n
, sau đó đặt từng giá trị vào a
mức trung bình của hai bên cạnh nó, n
lần. Khi được sử dụng nhiều lần với giá trị tăng dần n
, điều này tạo ra một chuyển động giống như sóng:
Cụ thể:
- Nếu chỉ có một mục trong
a
hoặc nếun
0 hoặc ít hơn, chương trình sẽ trả về mảng ban đầu. - Đầu vào và đầu ra có thể ở bất kỳ định dạng nào bạn muốn, miễn là chúng được phân tách rõ ràng.
Đối với mỗi bước:
- Mục đầu tiên trong
a
sẽ trở thành mức trung bình của chính nó và mục tiếp theo. - Mục cuối cùng
a
sẽ trở thành mức trung bình của chính nó và mục trước đó. - Bất kỳ mục nào khác
a
sẽ trở thành mức trung bình của mục trước và mục tiếp theo. - Hãy chắc chắn rằng bạn đang tính toán mảng của bước trước chứ không phải mảng hiện tại!
Các trường hợp kiểm tra: LƯU Ý: Đầu vào / đầu ra của bạn không phải ở định dạng này!
[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]
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng. Người chiến thắng sẽ được chọn trong một tuần (vào ngày 1 tháng 8). Chúc may mắn!
Chỉnh sửa: Chúc mừng người chiến thắng, @issacg , với con số khổng lồ 18 byte!
n
nên là 4, không phải 5.
n
không được cung cấp vàa
không được cung cấp - chúng không thực sự bổ sung nhiều.