02 mayo 2010

Java Learning (I)

Hoy ya hace una semana que estoy aprendiendo Java. No es que haya avanzado mucho que digamos, ya que apenas estoy viendo la Herencia (no, no voy a heredar de ninguna tía rica, jeje), pero creo que en otra semana más estaré en condiciones de afrontar un proyecto de aplicación práctica.

El otro día estuve leyendo algo sobre la Ley de Benford, y creo que sería buena idea programar una aplicación que genere una serie de números aleatorios pero que respeten la Ley de Benford (para darles verosimilitud, podría serle útil a un amigo asesor fiscal).

Los requerimientos básicos serían estos:
  1. Debemos introducirle el menor y el mayor número posible, es decir el rango dentro del que deberán estar todos los números que se generen.
  2. Deberemos introducirle la longitud de la serie de números que queremos generar.
  3. Para el algoritmo había pensado algo del tipo montecarlo e ir descartando los que no cumplan la Ley, pero: primero, en principio cualquier número generado es válido; segundo, se desaprovechan muchas iteraciones. El algoritmo de generación ha de ser elegante y que aproveche al máximo las iteraciones. Por lo tanto, creo que me decanto por hacerlos a porcentajes, es decir obtengo siempre números del 1 al 100 y con un array de porcentajes compruebo qué dígito voy a generar (el número de dígitos de cada número también será random), y así sucesivamente.
  4. Necesitaré exportar la serie de números generada a un fichero formato CSV.
Se admiten sugerencias y consejos. Si me sale bien pienso portarla al Android.


0 comentarios: