counterstring은 소프트웨어 테스트에 사용되는 자체 기술 시험 데이터의 일종이다. 실제로 제임스 바흐 (James Bach) 가 발명 한 것이 확실하지 않지만 나는 그곳에서 알고 있습니다.
테스트 데이터에는 별표 ( *
) 가 많이 포함되어 있습니다 . 별표 앞의 숫자는 해당 시점의 테스트 데이터 길이를 나타냅니다. 테스트 데이터에서 별표가 아닌 위치를 알아야하는 경우 마지막 별표를 찾아 앞의 숫자를보고 뒤에 오는 자릿수를 추가하십시오.
순서는 다음과 같이 시작됩니다.
2*4*6*8*11*14*17*20*23*
^
보다시피, 표시된 별표는 위치 14에 있습니다.
다음과 같이 파일이 잘리는 경우
[...]2045*20
당신은 2047 자 어딘가에 (2,045 별표는 플러스 2의 한계가 있음을 유도 할 수있다 2
하고 0
).
해당 형식의 임의의 긴 테스트 문자열을 출력 하는 가장 짧은 (이것은 code-golf ) 프로그램 을 만드는 것이 당신의 임무 입니다. 문자 길이는 인수로 제공됩니다. 프로그램은 최대 2GB의 테스트 데이터 (입력 값 2147483647 자)를 지원해야합니다.
2GB 파일의 "위험한"위치 :
8*11*
98*102*
998*1003*
9998*10004*
99998*100005*
999995*1000003*
9999995*10000004*
99999995*100000005*
999999995*1000000006*
995 * 999 *와 995 * 1000 * 또는 이와 유사한 결정을 내리는 경우 @Leaky Nun 의 질문에 대답해야합니다 .
입력 값이 2147483647 인 2GB 파일의 끝은 다음과 같습니다.
2147483640*2147483
995*999*
및 995*1000*
또는 아무것도 그런?