Estás en:   ArielOrtiz.com > Fundamentos de programación > Numeración maya

Numeración maya

Generalidades

Esta es una actividad opcional individual que consiste de dos partes:

  1. Escribir un programa que resuelva el problema que se describe a continuación.
  2. Traer dicho programa al examen final y modificarlo a partir de unos nuevos requisitos que se darán a conocer en ese mismo momento.

Si un alumno cumple adecuadamente con ambas partes se hará acreedor a 30 puntos adicionales en la calificación del registro en la que haya salido más bajo durante el semestre.

NOTA: El programa elaborado (junto con las modificaciones solicitadas) se deberá entregar junto con los demás problemas del examen final.

Problema

Revisa la entrada de Wikipedia sobre la numeración maya para entender cómo funciona este sistema numérico.

Este problema consiste en convertir números a su equivalente en notación maya. Para ello necesitamos la siguiente tabla:

Número
decimal
Símbolos de la notación maya
en representación textual
0 @
1 .
2 ..
3 ...
4 ....
5
6 .–
7 ..–
8 ...–
9 ....––
10 ––
11 .––
12 ..––
13 ...––
14 ....––
15 –––
16 .–––
17 ..–––
18 ...–––
19 ....–––

Los símbolos de la tabla se colocan en uno o más renglones (o niveles). El valor del símbolo del último renglón se multiplica por 200, el del penúltimo renglón por 201, el del antepenúltimo renglón por 202, y así sucesivamente para finalmente sumar todos estos resultados parciales.

Por ejemplo, el número 2017 en notación maya se puede representar textualmente así:

-
@
..---

Esto es así dado que: (5 × 202) + (0 × 201) + (17 × 200) = 2017.

Escribe un programa en Python 3.5 llamado maya.py. Dentro de este programa define una función llamada maya(archivo_salida, lista_numeros). Esta función debe convertir cada número entero positivo contenido en lista_numeros a su correspondiente notación maya, escribiendo el resultado en un archivo de texto cuyo nombre está en la cadena archivo_salida.

Se debe considerar lo siguiente:

Añade al programa la siguiente función main:

def main():
    maya('salida1.txt', [32, 429, 5125])
    maya('salida2.txt', [0, 401, 2017, 2 ** 100])

Al correr el programa se crean dos archivos con los contenidos que se muestran a continuación: