Viết chương trình hoặc hàm lấy số nguyên dương N lẻ và một chuỗi các chữ số thập phân ( 0123456789
). Chuỗi đại diện cho một máy tự động tế bào một chiều mười trạng thái . Mỗi chữ số chiếm một ô và quy tắc cập nhật từ thế hệ này sang thế hệ tiếp theo là mọi ô trở thành chữ số kết quả từ tổng số các ô N tập trung vào ô, modulo 10.
Các ô đầu tiên và cuối cùng bao quanh như thể các lân cận, vì vậy các ô luôn có thể có các ô N tập trung vào chúng. Lưu ý rằng N có thể lớn hơn độ dài của chuỗi, có nghĩa là nó có thể bao quanh nhiều lần và một số chữ số sẽ theo tổng số nhiều lần.
Ví dụ, nếu N là 7 và chuỗi là 038
, để trực quan hóa các ô để tính tổng, chúng ta có thể viết 038
lặp lại vô hạn theo cả hai hướng
...038038038038038...
sau đó chữ số mà ý 0
chí sẽ thay đổi thành tổng của 7 chữ số xoay quanh bất kỳ 0
, modulo 10:
...038038038038038...
^_____^
|
sum all these
Đây là (0+3+8+0+3+8+0)%10
, đó là 2
.
Tương tự, các chữ số 3
và 8
thay đổi thành được xác định bởi (3+8+0+3+8+0+3)%10
= 5
và (8+0+3+8+0+3+8)%10
= 0
tương ứng.
Như vậy, thế hệ sau 038
là 250
khi N bằng 7.
Chương trình hoặc hàm của bạn cần in hoặc trả về chuỗi chữ số của thế hệ tiếp theo của chuỗi chữ số đầu vào. tức là áp dụng quy tắc cập nhật một lần cho mỗi ô và đưa ra đầu ra. Mã ngắn nhất tính bằng byte thắng.
Các trường hợp thử nghiệm
[digit string] -> [N = 1], [N = 3], [N = 5], [N = 7], [N = 9], [N = 43]
0 -> 0, 0, 0, 0, 0, 0
1 -> 1, 3, 5, 7, 9, 3
2 -> 2, 6, 0, 4, 8, 6
3 -> 3, 9, 5, 1, 7, 9
4 -> 4, 2, 0, 8, 6, 2
5 -> 5, 5, 5, 5, 5, 5
6 -> 6, 8, 0, 2, 4, 8
7 -> 7, 1, 5, 9, 3, 1
8 -> 8, 4, 0, 6, 2, 4
9 -> 9, 7, 5, 3, 1, 7
00 -> 00, 00, 00, 00, 00, 00
07 -> 07, 47, 41, 81, 85, 47
10 -> 10, 12, 32, 34, 54, 12
11 -> 11, 33, 55, 77, 99, 33
12 -> 12, 54, 78, 10, 34, 54
34 -> 34, 10, 78, 54, 12, 10
66 -> 66, 88, 00, 22, 44, 88
80 -> 80, 86, 46, 42, 02, 86
038 -> 038, 111, 294, 250, 333, 472
101 -> 101, 222, 343, 545, 666, 989
987 -> 987, 444, 901, 765, 222, 543
1234 -> 1234, 7698, 3412, 9876, 1234, 7698
26697 -> 26697, 54128, 00000, 56982, 84413, 54128
001002 -> 001002, 211122, 331332, 335334, 455544, 113112
129577020 -> 129577020, 326194923, 474081605, 961120291, 333333333, 183342413
6023845292173530 -> 6023845292173530, 6853571632015189, 1197228291289874, 9238433109901549, 0110956118726779, 1982123699138828