주어진 유니 코드 문자 시퀀스를 알파벳으로 양방향 Gematria 계산기를 만듭니다.
게 마트 리 무엇?
Gematria 는 고대 그리스인이 개발하고 고대 유대인이 채택한 기호에 숫자 값을 할당하는 시스템입니다. ASCII 또는 유니 코드와 같은 방식으로 비선형입니다 ... 다음 표를 참조하십시오 (전체 표는 위의 링크에서 사용 가능합니다).
Index Letter Letter name Value
--------------------------
0 א "Alef" 1
1 ב "Bet" 2
...
8 ט "Tet" 9
9 י "Yud" 10
10 כ "Kaf" 20
...
17 צ "Tsady" 90
18 ' "Kuf" 100
19 ר "Resh" 200
...
문자의 이름은 중요하지 않으며 알파벳의 "배열"에있는 색인과 해당 숫자 값만 중요합니다. 히브리어 알파벳은 22 자 ( "최종"문자 제외) 만 포함하므로 최대 값은 400입니다.
이 시스템을 영어 알파벳 (AZ)으로 빌리면 A = 1, B = 2 ... L = 30 ... U = 300 ... Z = 800으로 끝납니다.
우리가 알아야 할 두 가지.
이 시스템에서 가장 중요한 기능 중 하나는 글자의 값 을 합산 하여 단어 의 "Gematria Value"를 계산하는 것 입니다. (어떤 단어 나 구 (공간의 값이 0 일 때) 사이에 동일한 Gematria 값을 공유하는 신비로운 연결이 있다고 말하는 사람들도 있습니다).
음이 아닌 정수는 기호로 표시 할 수 있습니다. 예를 들어 (지금은 영어 알파벳을 유지하자) 32의 값은 LB입니다 (L = 30 + B = 2). 1024 값은 ZTKD (800 + 200 + 20 + 4입니다. ZSSKD도 1024이지만 압축 할 수 있기 때문에 합법적 인 표현은 아닙니다.)
도전
선택 언어로 프로그램 / 함수 / 코드 스 니펫을 작성하십시오. 먼저 알파벳으로 설정 한 다음 (아래 API 참조) 인수를 수락하십시오. 이 인수는 정수 또는 단어 / 구문 일 수 있습니다. 정수인 경우-프로그램은 알파벳 기호로 표현을 출력 / 반환해야합니다-가장 압축 된 것입니다 (위의 (2) 참조). 단어 또는 문구 인 경우 프로그램은 Gematria 값을 출력 / 반환해야합니다 (공백을 계산하지 않고 기호 값을 합산하여 위의 (1) 참조).
API
프로그램 / 기능은 3 개의 인수를 허용해야합니다. STDIN에서 가져 오거나 함수 인수로 함수 호출 전에 프로그래밍 방식으로 초기화 된 변수라고 가정 할 수도 있습니다.
- 첫 번째 인수-알파벳의 첫 문자 (유니 코드)
- 두 번째 인수-알파벳의 마지막 문자 (유니 코드).
- 세 번째 인수-기호로 표시되는 정수 또는 주어진 알파벳으로 작성된 문구입니다.
출력 / 반환 값 : 위에서 설명한대로 세 번째 인수에 따라.
가정
- 처음 두 인수는 항상 각각 한 문자 길이이며 두 번째 인수는 항상 첫 번째 문자보다 강합니다.
- 시퀀스 (첫 번째에서 마지막까지 포함)에는 30-39 (0-9를 나타내는 숫자) 값이 포함되지 않으며, 그렇지 않으면 세 번째 인수가 모호해집니다. 편집 : 문구에는 공백이 0으로 계산되므로 공백도 포함하지 않습니다.
- 세 번째 인수는 구인 경우 주어진 알파벳의 공백과 문자 만 포함 할 수 있습니다. 빈 문자열은 유효한 입력이 아닙니다 (비어 있지 않다고 가정 할 수 있습니다). 정수인 경우 긍정적 인 정수라고 가정 할 수 있습니다.
예
Input Output
A Z CODE GOLF 175
a s 512 sssssjb
A B 7 BBBA
≐ ⊐ ≤≫ ≥ 1700
채점
Score = upvotes - length/100.0
코드는 짧지 만 가장 인기있는 코드 여야합니다. 음수도 함께 연주 할 수 있습니다. 우승자는 이제 2014-11-29 19:20:00 UTC부터 일주일 동안 가장 높은 점수를 얻은 답변이됩니다.