Lost 는 ip의 시작 위치와 방향이 완전히 임의 인 2D 프로그래밍 언어입니다.
이것은 결정론적인 로스트 프로그램을 만들기가 매우 어렵습니다. 그러나 오늘날 우리는 결정 론적 프로그램을 작성하지 않고 RNG를 작성하고 있습니다.
입력을받지 않고 한 자릿수 (0,1,2,3,4,5,6,7,8 또는 9)를 출력하고 모든 자릿수가 출력 될 확률이 같은 Lost 프로그램을 작성하십시오. Lost의 시작 위치와 방향은 임의의 유일한 소스이므로 소스의 모든 위치가 0에서 9까지 다른 숫자를 출력하고 각 숫자를 같은 숫자로 출력하는 것이 유일한 방법입니다.
-Q
플래그 를 사용 하여이 파이썬 스크립트에 파이프 하여 각 숫자의 확률을 계산할 수 있습니다
import sys
a=sys.stdin.read().split()[:-1]
for x in range(10):print x,':',a.count(`x`)
print[x for x in a if x not in list("1234567890")]
이것은 코드 골프 이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
로스트 개요
로스트 (Lost)는 클라인 금형에서 많은 부분을 차지하는 래핑 암시 적 IO 2D 언어입니다. 다음은 잃어버린 명령이하는 일에 대한 간략한 설명입니다.
\
,/
,|
거울는 IP<
,^
,>
,v
방향으로 IP를 포인트[
동쪽으로 움직이면 ip를 반영합니다. 해진다]
는 IP 수평 이동되면]
서쪽으로 움직이면 ip를 반영합니다. 해진다[
는 IP 수평 이동되면!
다음 작업을 건너 뜁니다?
스택 상단에서 튀어 나와 0이 아닌 경우 점프:
스택의 상단을 복제$
스택의 맨 위 두 항목을 바꿉니다.(
스택에서 튀어 나와 범위로 푸시)
스코프에서 튀어 나와 스택으로 푸시0
-9
스택 상단으로 n을 밀어 넣습니다."
문자열 리터럴을 시작하고 종료합니다. 문자열 리터럴 명령은 실행되지 않고 대신 문자 값이 스택으로 푸시됩니다.+
상단 두 숫자를 더합니다*
상위 2 개의 숫자를 곱합니다-
상단에 -1을 곱합니다%
안전을 끕니다#
안전을 켭니다@
안전이 해제 된 경우 실행을 종료합니다 (시작됨).
[]
문 역할을 <>
하고 방향을 지시하며 ()
스코프에서 저장 및 호출합니다. 범위는 값을 저장하는 데 사용됩니다.
@
다른 유스 케이스의 조건 일까요? 대괄호에 대해서는이 부분을 이해하지 못합니다 : becomes ] if the ip is moving horizontally
. 동쪽으로 움직이는 것도 수평이지 않습니까?