7 세그먼트 디스플레이 디코딩 \texttt{01101101} &

당신은 아마 모두 알고 7 세그먼트 디스플레이 에서 다른 것들 모든 숫자들 사이에서 표시 할 수 있습니다 :

09

7 세그먼트 디스플레이 (wikipedia.org)

도전

우리는 세그먼트 만 고려합니다 . 당신의 임무는 어떤 세그먼트가 켜져 있는지 주어진 한 자리를 해독하는 것입니다.

이것은 8 비트 정수로 인코딩 될 수 있습니다. 여기에는 이진수 표현과 해당 리틀 엔디안 및 빅 엔디안 값이있는 각 숫자 표가 있습니다.

숫자.ABCDEFG리틀 엔디안빅 엔디안0011111101260x7E1260x7E100110000480x30120x0C2011011011090x6D1820xB6011110011210x791580x9E400110011510x332040xCC501011011910x5B2180xDA601011111950x5F2500xFA7011100001120x70140x0E8011111111270x7F2540xFE9011110111230x7B2220xDE

규칙 및 I / O

  • 입력은
    • 단일 정수 (두 개의 주어진 순서 중 하나 위의 표에서와 같이)
    • 비트리스트 / 배열 / ..
    • 문자로 구성된 문자열 ABCDEFG(예를 들어ABC 인코딩 하면 정렬 된 것으로 가정 할 수 있음 ), 대소 문자를 선택하십시오 (대소 문자를 구분하지 않음)
      7

  • 출력은 인코딩하는 숫자입니다.
  • 유효하지 않은 입력이 없다고 가정 할 수 있습니다 (유효하지 않은 경우 해당 숫자가 없음).

테스트

이 과제는 여러 가지 표현을 허용하므로 표를 참조하십시오.



답변

자바 스크립트 (ES6), 26 바이트

리틀 엔디안에서 입력을받습니다.

n=>'0958634172'[n*3%77%10]

온라인으로 사용해보십시오!


답변

파이썬 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을 갖도록합니다.


답변

젤리 , 12 바이트

“0my3[_p¶{‘i

리틀 엔디안 정수를 허용합니다.

온라인으로 사용해보십시오!

이것은 순진한 구현이며, terser 코드를 얻는 방법 이있을 있습니다.


답변

파이썬 2 , 31 바이트

lambda n:'99608231754'[n%41%11]

온라인으로 사용해보십시오! 리틀 엔디안으로 입력을받습니다.


답변

자바 (JDK) , 32 바이트

n->"99608231754".charAt(n%41%11)

온라인으로 사용해보십시오!

크레딧


답변

자바 스크립트 (Node.js) , 25 바이트

n=>'1498620537'[384%n%13]

리틀 엔디안 정수를 허용합니다.

온라인으로 사용해보십시오!


파이썬에서 31 바이트 포트 lambda n:'1498620537'[384%n%13]