Cree una calculadora bidireccional Gematria, para cualquier secuencia dada de caracteres Unicode como el alfabeto.
Gematri-Qué?
Gematria es un sistema de asignación de valores numéricos a símbolos, desarrollado por antiguos griegos y adoptado por antiguos judíos. Es similar a ASCII o Unicode, es simplemente no lineal ... Consulte la siguiente tabla (la tabla completa está disponible en el enlace de arriba):
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
...
Los nombres de las letras no son importantes, solo su índice en la "matriz" del alfabeto y el valor numérico respectivo. El alfabeto hebreo solo tiene 22 letras (sin incluir letras "finales"), por lo que el valor máximo disponible es 400.
Si tomamos prestado este sistema al alfabeto inglés (AZ), terminaremos con A = 1, B = 2 ... L = 30 ... U = 300 ... Z = 800.
Dos cosas que necesitamos saber.
Una de las características más importantes de este sistema es calcular el "Valor Gematria" de una palabra , resumiendo los valores de sus letras. (Algunos dicen que existe una conexión mística entre palabras o frases (cuando el valor del espacio es cero), que comparten el mismo valor de Gematria).
Cualquier número entero no negativo se puede representar en símbolos. Por ejemplo (y quedémonos con el alfabeto inglés por ahora) el valor de 32 es LB (L = 30 + B = 2). El valor de 1024 es ZTKD (800 + 200 + 20 + 4. Tenga en cuenta que ZSSKD también es 1024, pero eso no es una representación legal, ya que se puede compactar).
El reto
Escriba un programa / una función / un fragmento de código en su idioma de elección, que primero se configura con un alfabeto (consulte la API a continuación) y luego acepte un argumento. Ese argumento puede ser un entero, o una palabra / frase. Si es un número entero, su programa debería generar / devolver su representación en los símbolos del alfabeto, el más compactado (consulte (2) más arriba). Si es una palabra o una frase, su programa debería generar / devolver el valor de Gematria (sumando los valores de los símbolos, sin contar espacios en blanco, consulte (1) más arriba).
API
Su programa / función debe aceptar 3 argumentos. Puede obtenerlos de STDIN, o como argumentos de función, incluso puede suponer que son variables que se inicializaron programáticamente antes de la invocación de su función.
- Primer argumento: el primer carácter (en Unicode) del alfabeto.
- Segundo argumento: el último carácter (en Unicode) del alfabeto.
- Tercer argumento: un número entero, que se representará en símbolos, O una frase creada por el alfabeto dado.
Valor de salida / retorno: Dependiendo del tercer argumento, como se explicó anteriormente.
Supuestos
- Los dos primeros argumentos siempre tendrán un carácter de longitud cada uno, y el segundo siempre será mejor que el primero.
- La secuencia (primero hasta el último, inclusive) nunca incluirá ninguno de los valores 30-39 (que representan los dígitos 0-9), de lo contrario hará que el tercer argumento sea ambiguo. EDITAR: no contendrá espacio también, ya que en las frases los espacios se cuentan como ceros.
- El tercer argumento, en caso de que sea una frase, solo puede contener espacios y letras del alfabeto dado. La cadena vacía no es una entrada válida (puede suponer que no está vacía). En caso de que sea un entero, puede asumir que es un entero positivo.
Ejemplos
Input Output
A Z CODE GOLF 175
a s 512 sssssjb
A B 7 BBBA
≐ ⊐ ≤≫ ≥ 1700
Puntuación
Score = upvotes - length/100.0
Su código debe ser breve, pero lo más importante, popular. Los puntajes negativos también pueden acompañar. El ganador será la respuesta con el puntaje más alto en una semana a partir de ahora, 29/11/2014 19:20:00 UTC.