당신은 아마 모두 알고 7 세그먼트 디스플레이 에서 다른 것들 모든 숫자들 사이에서 표시 할 수 있습니다 :
도전
우리는 세그먼트 만 고려합니다 . 당신의 임무는 어떤 세그먼트가 켜져 있는지 주어진 한 자리를 해독하는 것입니다.
이것은 8 비트 정수로 인코딩 될 수 있습니다. 여기에는 이진수 표현과 해당 리틀 엔디안 및 빅 엔디안 값이있는 각 숫자 표가 있습니다.
규칙 및 I / O
- 입력은
- 단일 정수 (두 개의 주어진 순서 중 하나 위의 표에서와 같이)
- 비트리스트 / 배열 / ..
- 문자로 구성된 문자열
ABCDEFG
(예를 들어ABC
인코딩 하면 정렬 된 것으로 가정 할 수 있음 ), 대소 문자를 선택하십시오 (대소 문자를 구분하지 않음)
- 출력은 인코딩하는 숫자입니다.
- 유효하지 않은 입력이 없다고 가정 할 수 있습니다 (유효하지 않은 경우 해당 숫자가 없음).
테스트
이 과제는 여러 가지 표현을 허용하므로 표를 참조하십시오.
답변
답변
파이썬 3 , 18 바이트
b'~0my3[_p{'.find
리틀 엔디안 입력을 사용합니다. 원시 \x7F
바이트를 포함합니다 .
파이썬 2 , 27 바이트
map(ord,'~0my3[_p{').index
답변
Wolfram Language (Mathematica) , 41 바이트
9[,6,0,8,2,3,1,7,5,4][[#~Mod~41~Mod~11]]&
리틀 엔디안 열의 정수를 입력으로 사용합니다. 구문 경고를 무시하십시오.
입력 X의 경우 먼저 X mod 41을 가져온 다음 결과 mod 11을 사용합니다. 결과는 고유 한 mod 11이므로 테이블에서 결과를 추출 할 수 있습니다. 예를 들어, 126 mod 41 mod 11은 3이므로 위치 3을 0으로 설정하면 126의 입력에 대한 정답을 얻습니다.
테이블은 9[,6,0,8,2,3,1,7,5,4]
입니다. 파트 0은 헤드입니다 9
. Part 1은 누락되었으므로 Null
바이트를 절약 할 수 있습니다. Part 1을 취할 필요는 없습니다. 그런 다음 평소와 같이 part 2는 6
, part 3은 0
등입니다.
Jonathan Allan의 대답 은 우리에게 1[4,9,8,6,2,0,5,3,7][[384~Mod~#~Mod~13]]&
. 이것은 더 짧지는 않지만 구문 경고를 피합니다!
Wolfram Language (Mathematica) , 27 25 바이트
Mod[Hash[")dD}"#]+2,11]&
(여기에 보이지 않는 문자가 있습니다. 죄송합니다. 아래 링크를 클릭하면 표시됩니다.)
이것은 모든 문자열이 내부에 들어가 Hash
도록 강제하는 것 입니다. 해시가 올바른 값 mod 11을 갖도록합니다.
답변
답변
답변
자바 (JDK) , 32 바이트
n->"99608231754".charAt(n%41%11)
크레딧
- 포트 Arnauld 의 자바 스크립트 응답 후 역사에서 이전 시도보다 훨씬 짧다.
- Misha Lavrov 의 Wolfram Language (Mathematica) 답변을 사용하여 Jonathan Allan 에게 -1 바이트 감사합니다 .
답변
자바 스크립트 (Node.js) , 25 바이트
n=>'1498620537'[384%n%13]
리틀 엔디안 정수를 허용합니다.
파이썬에서 31 바이트 포트 lambda n:'1498620537'[384%n%13]