홀수 양의 정수 N과 10 진수 문자열 ( 0123456789
) 을 취하는 프로그램 또는 함수를 작성하십시오 . 스트링은 10- 상태 1 차원 셀룰러 오토 마톤을 나타낸다 . 각 숫자는 하나의 셀을 차지하며 한 세대에서 다음 세대로의 업데이트 규칙은 모든 셀이 셀 중심의 모듈러스 10의 합에서 나온 숫자가된다는 것입니다.
첫 번째 셀과 마지막 셀은 이웃처럼 랩핑되므로 셀은 항상 N 셀을 중심으로 할 수 있습니다. N은 문자열의 길이보다 클 수 있습니다. 즉, 여러 번 감쌀 수 있으며 일부 숫자는 여러 번 합산됩니다.
예를 들어, N이 7이고 문자열이 038
인 경우 셀을 합계로 시각화하여 038
양방향으로 무한 반복 을 쓸 수 있습니다.
...038038038038038...
다음 0
으로 바뀌는 숫자 0
는 모듈로 10을 중심으로 한 7 자리수의 합입니다 .
...038038038038038...
^_____^
|
sum all these
이다 (0+3+8+0+3+8+0)%10
인 2
.
마찬가지로 숫자 3
와 8
변경 숫자는 각각 (3+8+0+3+8+0+3)%10
= 5
와 (8+0+3+8+0+3+8)%10
= 로 정의됩니다 0
.
따라서, 생성 후 038
이고 250
N이 7 인 경우.
프로그램 또는 함수는 차세대 입력 숫자 스트링의 숫자 스트링을 인쇄하거나 리턴해야합니다. 즉, 업데이트 규칙을 각 셀에 한 번 적용하고 출력을 제공하십시오. 바이트 단위의 가장 짧은 코드가 이깁니다.
테스트 사례
[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