3 votos

Averiguar la edad de una persona en días dada su fecha de nacimiento dd/mm/aaaa?

Tiene que ser alguien vivo hoy en día. Supongamos que el día es hoy: 15 de septiembre de 2014. Esto es conveniente porque los años bisiestos serán regulares (una vez cada cuatro años; la extraña regla se aplica a $1900$ pero no $2000$ )

Si me dan el cumpleaños de alguien en términos de día $d$ , mes $m$ y año $y$ ¿existe una fórmula matemática en términos de $d, m,$ y $y$ que me permita encontrar su edad?

Yo diría que hay que generalizar el problema a cualquier fecha de nacimiento y a cualquier fecha actual, pero los años bisiestos serían tan irregulares que no estoy seguro de que fuera posible. Sin embargo, si lo es, por todos los medios..

1voto

CocoaPriest Puntos 1058

Una de las formas de hacerlo sería utilizar las funciones suelo o techo para crear funciones de valor booleano a partir de otras funciones matemáticas, y luego multiplicarlas por otras expresiones matemáticas para obtener los distintos casos, lo que le permitiría utilizar efectivamente la misma estrategia que utilizaría alguien que escribiera esto en un lenguaje de programación.

Por ejemplo, $\lfloor cos(\pi n)/2+1\rfloor \times \lfloor \cos(\frac{\pi}{2} n)/2+1 \rfloor$ devuelve un 1 si n es divisible por 4, y un 0 en caso contrario. Entonces, sólo tendrías que multiplicar esta función por cualquier expresión que quieras usar para manejar los años bisiestos, más la negación de esta función por cualquier expresión que quieras usar para manejar los años no bisiestos.

Por supuesto, sería más complicado que eso, ya que, por ejemplo, los años divisibles por 100 no son bisiestos, pero los años divisibles por 400 sí lo son, por lo que habría que tenerlo en cuenta también, pero es definitivamente factible. Sin embargo, no será la expresión matemática más elegante, a no ser que te parezca bien utilizar funciones definidas a trozos (lo que sería esencialmente una forma de declaración "si" también, pero no estoy seguro de cuáles son exactamente tus criterios).

1voto

Claus Christensen Puntos 124

Una ecuación de una línea en la que se introduce $d_{1}$ , $m_{1}$ , $y_{1}$ , $d_{2}$ , $m_{2}$ y $y_{2}$ para obtener el tiempo en días desde la fecha anterior hasta la última fecha podría ser posible, pero no sería bonito.

Por ejemplo, un dato que necesitaría es cuántos días del año tiene esta última fecha. Supongamos que la última fecha es hoy. Mientras escribo esto, es el 30 de octubre de 2014.

Para saber qué día del año es el 30 de octubre, tengo que añadir la fecha ( $d_{2}=30$ ) al número de días que precedieron a octubre en este año. Para hacer esto puramente por una ecuación, utilizando $m_{2}=1$ para enero hasta $m_{2}=12$ para el mes de diciembre, las cuentas quedarían así: $$ d_{2} + (\frac{1}{19958400}((m_{2}-1)(178m_{2}^{10}-12824m_{2}^{9}+406221m_{2}^{8}-7436559m_{2}^{7}+86950965m_{2}^{6}-676958181m_{2}^{5}+3545249204m_{2}^{4}-12298071916m_{2}^{3}+26959705632m_{2}^{2}-33604341120m_{2}+18601228800))) $$ Esto daría como resultado 30 + 273 = 303, lo que me dice que el 30 de octubre de 2014 es el 303º día del año.

Como referencia, aquí está esa fórmula pasada por Wolfram|Alpha (utilizando $x$ en lugar de $m_{2}$ y sin $d_{2}$ añadido).

Hay que tener en cuenta que esta fórmula sólo tiene en cuenta los años de 365 días, por lo que habría que hacer más ajustes para tener en cuenta los años bisiestos. A continuación, tendríamos que repetir esta ecuación por separado para $d_{1}$ , $m_{1}$ y $y_{1}$ . También habría que tener en cuenta el número de años bisiestos entre las fechas dadas, posiblemente teniendo en cuenta la excepción de algunos años 00.

Esta ecuación de una sola línea se complicaría rápidamente. Como muchos ordenadores y lenguajes tienen límites de caracteres en las líneas, ni siquiera es seguro que una fórmula así pudiera utilizarse.

Por eso es preferible un algoritmo para un problema como éste. Desglosa el problema en pasos individuales que eventualmente terminan, y luego trabaja a través de los pasos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X