가능한 적은 문자로 다른 프로그램 (입력)을 인코딩하는 프로그램을 작성하는 것이 목표입니다.
채점
- 점수는 출력에 필요한 다른 문자 수와 같습니다.
- 낮은 점수가 좋습니다.
규칙
- 제한된 명령 세트를 가진 대상 언어가 없습니다. (Brainf ** k, 공백 등 없음)
편집 : 최소 26 개의 유효 문자를 의미A
하며 brainf ** k 프로그램의 작동 방식을 변경하지 않으므로이 문자를 계산할 수 없습니다. 공백에도 동일하게 적용됩니다. - 이 질문이 작성 될 때 대상 언어가 존재해야합니다.
- 스코어를 보관하는 방법에 대한 작은 설명을 포함해야합니다.
- 입력 프로그램이 유효합니다.
- 인코딩 된 프로그램은 입력과 동일한 언어의 유효한 프로그램이어야합니다.
- 인코딩 된 프로그램은 원래 프로그램과 동일한 작업을 수행해야합니다.
- 해당 언어의 모든 유효한 프로그램에 대해 인코더가 작동해야합니다.
- 샘플 입력 및 출력을 포함하십시오.
노트
- 인코더는 대상 언어뿐만 아니라 모든 언어로 작성 될 수 있습니다.
- 이것은 코드 골프 가 아니며 읽을 수있는 프로그램이 권장됩니다.
- 가장 큰 목표는 해당 언어로 무엇을 쓰려면 몇 개의 다른 문자가 필요한지 보는 것입니다. 나는 도전이 없기 때문에 BF 등을 허용하지 않았습니다.
- 이것은 가능한 한 적은 문자로 문자열 을 인쇄하여 영감을 얻었으며 해당 질문의 메타 골프 로 사용할 수 있습니다 .
예
Java에서는 \uXXXX
다른 문자를 대신 사용할 수 있습니다 . 유효한 항목은이 방법으로 입력의 모든 문자를 인코딩합니다. 점수는 18 점입니다. ( \ 0-9a-f
)
Tcl의 코드는 Java 프로그램을 인코딩합니다.
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
입력 한 줄만 읽지 않습니까? 그리고 u
인코더에서 를 놓쳤습니다 (그러나 공간이 필요하지 않으므로 점수가 동일하게 유지됩니다).