목적
이 아이디어는 32 비트 정수를 최대 9 자의 발음 할 수없는 단어와 매핑하는 데 필요한 코드를 제공하는 것입니다. 예를 들어 일련 번호를 더 쉽게 기억하거나 양식을 입력하는 데 유용 할 수 있습니다.
정수를 대응하는 단어로 번역하고 단어를 대응하는 정수로 다시 변환하는 방법이 모두 필요하다.
규칙
정수와 단어 사이에 일대일 매핑이 있어야하고 32 비트 정수 전체 (또는 다른 방법으로 0에서 4294967295까지의 정수)를 매핑 할 수 있어야합니다. 물론 모든 단어가 의미있는 것은 아니지만 정수에 매핑되지 않은 단어를 입력하면 지정되지 않은 동작이있을 수 있습니다.
의미있는 "발음 할 수있는"단어 집합과 의미있는 매핑 방법을 자유롭게 결정할 수 있지만 단어는 최소한 다음 규칙을 따라야합니다.
- 기본 26 자 (A ... Z) 만 문자로 사용해야합니다. 악센트, 케이스 등을 사용하여 가능한 조합을 확장해서는 안됩니다.
- 단어 당 최대 9 자입니다.
- 두 자음 (BCDFGHJKLMNPQRSTVWXZ-20 가능성)을 나란히 배치해서는 안됩니다 (모음으로 묶어야합니다).
- 두 모음 (AEIOUY-6 가능성)을 나란히 배치해서는 안됩니다 (자음으로 둘러싸여 야 함).
참고 : CVCVCVCVC( C자음과 V모음으로) 구성된 모든 단어를 갖는 가장 간단한 체계 는 4147200000 조합을 제공하며 32 비트 정수는 4294967296의 가능한 값을 가지므로 충분하지 않습니다. 더 짧은 단어를 허용하거나 VCVCVCVCV조합 을 허용하여 조합 수를 확장해야합니다 .
다른 표준 규칙이 적용되며 표준 허점이 금지됩니다.
입력 / 출력
제출할 때마다 두 가지 코드가 제공되어야합니다.
- 정수를 인수 / 입력으로 받아서 해당 단어를 반환 / 인쇄하는 것
- 단어를 인수 / 입력으로 받아서 해당 정수를 반환 / 인쇄하는 것
또는 두 작업을 모두 처리하는 단일 코드를 제출하도록 선택할 수 있습니다.
- 입력으로 정수가 주어지면 해당 단어를 출력합니다.
- 문자열을 입력으로 받으면 해당 정수를 출력합니다.
승리 조건
이것은 code-golf 이며, 가장 적은 바이트 (두 코드 조각을 합할 때 분리 된 코드 조각을 선택하는 솔루션에 대한 답변)가 가장 좋습니다.