RSS Feed

무한 숫자열 순회

Problem 238

출제 일시 : 2020-10-29 00:00:28, ☕ 15

"브럼 브럼 셔브(Blum Blum Shub)"라 불리는 유사 난수 생성기를 이용한 수열을 만듭니다:

s0 = 14025256
sn+1 = sn2 mod 20300713

이 난수들을 차례로 연결하여 s0s1s2… 무한 길이의 숫자열 w를 만듭니다.
그래서, w = 14025256741014958470038053646…입니다

k가 자연수일 때, 만일 w의 어떤 부분 숫자열의 자릿수 합도 k와 일치하는게 없다면 p(k)를 0으로 정의합니다. 만일 w의 어떤 부분 숫자열 하나라도 자릿수의 합이 k라면, p(k) = z라 정의합니다. 여기서, z는 가장 먼저 나오는 부분 숫자열의 시작 위치입니다.

예로:

부분 숫자열 1, 14, 1402, …
각각의 자릿수의 합은 다음과 같습니다 1, 5, 7, …
모두 시작 위치 1에서 시작하므로 p(1) = p(5) = p(7) = … = 1입니다.

부분 숫자열 4, 402, 4025, …
각각의 자릿수의 합은 다음과 같습니다 4, 6, 11, …
모두 시작 위치 2에서 시작하므로 p(4) = p(6) = p(11) = … = 2입니다.

부분 숫자열 02, 0252, …
각각의 자릿수의 합은 다음과 같습니다 2, 9, …
모두 시작 위치 3에서 시작하므로 p(2) = p(9) = … = 3입니다.

위치 3에서 시작하는 부분 숫자열 025는 자릿수의 합이 7이지만 더 일찍(위치 1에서) 시작하는 부분 숫자열 중에 자릿수 합의 7인 것이 있기 때문에 p(7) = 1이지 3이 아닙니다.

0 < k ≤ 103일 때, p(k) = 4742입니다.

0 < k ≤ 2×1015일 때, p(k) 값을 구하세요.


로그인 하시면 답안을 제출할 수 있고,
정답을 맞히신 분들은 댓글을 달거나 볼 수 있습니다.