奇数の正の整数Nと10進数の文字列(0123456789
)を取り込むプログラムまたは関数を作成します。文字列は、10状態の1次元セルオートマトンを表します。各桁は1つのセルを占有し、世代から世代への更新規則は、すべてのセルが、10を法とするセルを中心とするN個のセルの合計から生じる桁になることです。
最初と最後のセルは隣接セルのように折り返されるため、セルは常にN個のセルを中央に配置できます。Nは文字列の長さよりも大きい場合があることに注意してください。これは、Nが複数回折り返される可能性があり、それに応じていくつかの桁が複数回合計されることを意味します。
例として、Nが7で文字列がの038
場合、合計するセルを視覚化するため038
に、両方向に無限に繰り返すことができます
...038038038038038...
に0
変更される数字は、0
10を法としてanyを中心とした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のときです。
プログラムまたは関数は、次世代の入力数字列の数字列を印刷または返す必要があります。すなわち、各セルに更新ルールを1回適用し、出力を提供します。バイト単位の最短コードが優先されます。
テストケース
[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