Introducción
Debe crear una función para convertir números griegos en números arábigos. La entrada será un número griego menor que 1000y mayor que 0. Este es el reverso de mi desafío anterior .
Algoritmo
- De entrada dividida en letras (por ejemplo,
ΡΚΓ->Ρ,Κ,Γ) - Tome cada letra, y el cambio de carácter encontró en la tabla a continuación, para el símbolo de letra, (por ejemplo,
ΡΚΓ->Ρ,Κ,Γ->100,20,3). - Añadir (p
ΡΚΓ->Ρ,Κ,Γ->100,20,3->123)
Especificaciones
- Sin conversión de sistema numérico incorporado
- La entrada se capitalizará como en el ejemplo.
- La salida debe estar en la base 10.
ΡΡΡΡnunca ocurrirá. Lo seráΥ.
Casos de prueba
ΡΚΓ -> 123
Η -> 8
ΨΟΖ -> 777
Ρ -> 100
ΧϜ -> 606
ΡϘ -> 190
ΜΒ -> 42
Ν -> 50
Mesa
Α = 1 = Alpha = 913 UTF-8
Β = 2 = Beta = 914 UTF-8
Γ = 3 = Gamma = 915 UTF-8
Δ = 4 = Delta = 916 UTF-8
Ε = 5 = Epsilon = 917 UTF-8
Ϝ = 6 = DiGamma = 988 UTF-8
Ζ = 7 = Zeta = 918 UTF-8
Η = 8 = Eta = 919 UTF-8
Θ = 9 = Theta = 920 UTF-8
Ι = 10 = Iota = 921 UTF-8
Κ = 20 = Kappa = 922 UTF-8
Λ = 30 = Lambda = 923 UTF-8
Μ = 40 = Mu = 924 UTF-8
Ν = 50 = Nu = 925 UTF-8
Ξ = 60 = Xi = 926 UTF-8
Ο = 70 = Omicron = 927 UTF-8
Π = 80 = Pi = 928 UTF-8
Ϙ = 90 = Koppa = 984 UTF-8
Ρ = 100 = Rho = 929 UTF-8
Σ = 200 = Sigma = 931 UTF-8
Τ = 300 = Tau = 932 UTF-8
Υ = 400 = Upsilon = 933 UTF-8
Φ = 500 = Phi = 934 UTF-8
Χ = 600 = Chi = 935 UTF-8
Ψ = 700 = Psi = 936 UTF-8
Ω = 800 = Omega = 937 UTF-8
Ϡ = 900 = SamPi = 992 UTF-8
code-golf
number
natural-language
conversion
No hay nadie aquí
fuente
fuente

ΡΡΡΡ? Si es así, ¿cuál sería el resultado?180,42y50.Respuestas:
Gelatina ,
4745 bytesPruébalo en línea! o verificar todos los casos de prueba .
fuente
<newline>Ç€al final.Ç€que aplica la función a todos los casos de prueba. El primer enlace muestra el programa real, que tiene una longitud de 44 bytes.Pitón 3, 112
Guardado 4 bytes gracias a vaultah.
Booyah, superando a JS!
Con casos de prueba:
Recorre la cadena y usa su índice en la lista de caracteres potenciales para calcular cuánto vale.
fuente
JavaScript (ES7), 115 bytes
fuente
Haskell,
116113 bytesEjemplo de uso:
map f ["ΡΚΓ","Η","ΨΟΖ","Ρ","ΧϜ","ΡϘ","ΜΒ","Ν"]->[123,8,777,100,606,190,42,50].Busque el valor de la letra griega en una lista de pares
(letter, value)y suma. La lista de valores está construida por(*)<$>[1,10,100]<*>[1..9], donde(*)<$>[1,10,100]construye una lista de funciones[(*1),(*10),(*100)](multiplicar por 1, 10 y 100) que se aplican por separado a los elementos[1..9]y se concatenan en una sola lista.Editar: 3 bytes con agradecimiento a @xnor.
fuente
(*)<$>[1,10,100]<*>[1..9].<*>en el contexto de la lista, nuevamente. Yo nunca pienso en eso. ¡Gracias!Julia,
8270 bytesPruébalo en línea!
fuente
JavaScript (ES6), 116 bytes
¡Solo 1 byte más que ES7!
fuente
+"e"?9+"e"+2y luego se+("9e2")convierte en 900.Python 3, 188 bytes
¡Pruébalo!(Casos de prueba incluidos)
fuente
def f(x):r=list(range(1,10));R=[a*10for a in r];return sum(b*(a in x)for a,b in zip("ΑΒΓΔΕϜΖΗΘΙΚΛΜΝΞΟΠϘΡΣΤΥΦΧΨΩϠ",r+R+[a*10for a in R])).Retina , 72 bytes
Pruébalo en línea.
Explicación
Básicamente: reemplace cada símbolo griego con el número que representa, luego devuelva la suma de todos los números resultantes:
Translitere
10los dígitos s al árabe y100los dígitos s al alfabeto latino (0-9=>a-j):Agregue "aa" a
100los dígitos de s:Agregue "0" a
10los dígitos de s:Transliterar
1los dígitos y el alfabeto latino al árabe:Convierta todos los números decimales separados por espacios a unario:
Cuente el número total de
1s unarios :fuente