1 puntos por GN⁺ 2024-05-26 | 1 comentarios | Compartir por WhatsApp

El método de cálculo de fechas propuesto por Lewis Carroll

Carta que Lewis Carroll envió a Nature el 31 de marzo de 1887:

He descubierto un método para calcular mentalmente el día de la semana de una fecha dada de la siguiente manera, y me pareció que podría resultar interesante para los lectores. No soy un calculista rápido, y en promedio me toma unos 20 segundos resolver un problema de este tipo. Por lo tanto, estoy seguro de que a un calculista rápido no le tomaría ni 15 segundos.

Método de cálculo

  • Dividir la fecha dada en 4 partes: siglo, año, mes y día.
  • Calcular los siguientes 4 elementos y sumar cada uno al total acumulado anterior. Si un elemento o el total supera 7, dividir entre 7 y conservar solo el residuo.

Elemento del siglo

  • Estilo antiguo (antes del 2 de septiembre de 1752): restar de 18.
  • Estilo nuevo (después del 14 de septiembre de 1752): dividir entre 4 y, al restar el residuo de 3, multiplicar el residuo por 2.
  • Ejemplo: en 1811, el elemento del siglo es 18.

Elemento del año

  • Sumar los múltiplos de 12, el residuo y los múltiplos de 4 del residuo.

Elemento del mes

  • Si comienza o termina con una vocal, restar la posición de ese mes a 10. A este valor se le suma el número de días de ese mes.
  • Ejemplo: el elemento de enero es 0, el de febrero o marzo es 3, y el de diciembre es 12.
  • Valor final: enero 0, febrero 3, marzo 3, abril 6, mayo 1, junio 4, julio 6, agosto 2, septiembre 5, octubre 0, noviembre 3, diciembre 5.

Elemento del día

  • El número del día de ese mes.

Ajuste por año bisiesto

  • Si es enero o febrero de un año bisiesto, restar 1 del total final. Si el total es 0, primero sumar 7.
  • Año bisiesto: año divisible entre 4, excepto en estilo nuevo cuando un año de siglo no es divisible entre 4 (por ejemplo, 1800).

Resultado final

  • El resultado final representa el día de la semana. 0 es domingo, 1 es lunes, etc.

Ejemplos

18 de septiembre de 1783

  • Elemento del siglo: 17 dividido entre 4 deja residuo 1. 3 menos 1 da 2. 2 por 2 da 4.
  • Elemento del año: 83 son 6 docenas y 11, suma 17. Al sumar 2 da 19, y al dividir entre 7 queda 5. Total 9, al dividir entre 7 queda 2.
  • Elemento del mes: el elemento de agosto es 10 menos 8, es decir, 2. El de septiembre es 2 más 3, es decir, 5. Total 7, al dividir entre 7 queda 0.
  • Elemento del día: 18 es 4.
  • Resultado final: jueves.

23 de febrero de 1676

  • Elemento del siglo: 18 menos 16 da 2.
  • Elemento del año: 76 son 6 docenas y 4, suma 10. Al sumar 1 da 11, y al dividir entre 7 queda 4. Total 6.
  • Elemento del mes: el elemento de febrero es 3. Total 9, al dividir entre 7 queda 2.
  • Elemento del día: 23 es 2. Total 4.
  • Ajuste por año bisiesto: 3.
  • Resultado final: miércoles.

(Fuente: Edward Wakeling, Rediscovered Lewis Carroll Puzzles, 1995.)

La opinión de GN⁺

  • El método de cálculo de fechas de Lewis Carroll es útil para desarrollar el pensamiento matemático.
  • Este método es una forma interesante de calcular fechas sin computadora.
  • Entender detalles como el cálculo de los años bisiestos puede ayudar a obtener resultados más precisos.
  • También sería divertido compararlo con los cálculos de calendario modernos.
  • Para quienes disfrutan de los acertijos matemáticos, puede resultar un desafío interesante.

1 comentarios

 
GN⁺ 2024-05-26
Opinión de Hacker News

Resumen de comentarios de Hacker News

  • Usuario A: Este método es muy similar al que yo uso, y también lo usa Art Benjamin. Puede hacerse en 10–15 segundos, pero requiere práctica, algo de memorización y aritmética simple. Dominar esta técnica resulta muy útil.

    • Ejemplo: cálculo del día de la semana para el 24 de mayo de 2024
      12 años desde 2012
      3 años bisiestos
      número mágico del mes 2
      día 24
      residuo al dividir la suma entre 7: viernes
      
  • Usuario B: JH Conway usaba una técnica distinta, y es más rápida y fácil para calcular el día de la semana del año actual. Sin embargo, al calcular el "Doomsday" de otros años se complica, así que vuelve al método básico.

  • Usuario C: Le pareció interesante leer sobre la diferencia entre el calendario antiguo y el nuevo ocurrida en 1752. En el siglo XVIII, el año legal en Inglaterra comenzaba el 25 de marzo.

  • Usuario D: Tiene dificultades para entender el algoritmo de cálculo del número del mes. Explica cómo calcula el número de cada mes y señala que su intento no coincide con el resultado presentado en el artículo.

  • Usuario E: El algoritmo de Carroll ha ido evolucionando con el tiempo. Presenta el First Sunday Doomsday Algorithm con sus mejoras más recientes.

  • Usuario F: Escribió una entrada de blog que explica un método más sencillo. Se pueden ver los detalles en el enlace.

  • Usuario G: Le pareció muy interesante ver a Art Benjamin demostrar esta técnica en una charla TED. Se pueden seguir los cálculos intermedios por el movimiento de sus manos.

  • Usuario H: Calcula el día de la semana del 24 de mayo de 2024 usando el método de Lewis Carroll.

    • Ejemplo:
      ítem del siglo: 6
      ítem del año: 2
      ítem del mes: 1
      ítem del día: 24
      total: viernes
      
  • Usuario I: Comparte una forma de calcular el día de la semana de una fecha usando código en Python.

    def compute_day_of_week(date):
        day, month, year = date
        century = year // 100
        year_part = year % 100
    
        # Calculate century item
        if year < 1752 or (year == 1752 and (month < 9 or (month == 9 and day < 14))):
            century_item = (18 - century) % 7
        else:
            century_item = ((3 - (century % 4)) * 2) % 7
    
        # Calculate year item
        year_item = (year_part + (year_part // 4)) % 7
    
        # Calculate month item
        month_items = [0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5]
        month_item = month_items[month - 1]
    
        # Calculate day item
        day_item = day % 7
    
        # Total
        total = (century_item + year_item + month_item + day_item) % 7
    
        # Leap year correction
        if month <= 2 and (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)):
            total = (total - 1 + 7) % 7
    
        return total
    
    def day_of_week_string(day_index):
        days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
        return days[day_index]
    
    # Get date input
    date_input = input("Enter a date (yyyy-mm-dd): ")
    year, month, day = map(int, date_input.split('-'))
    date = (day, month, year)
    
    # Calculate and print day of week
    day_index = compute_day_of_week(date)
    day_name = day_of_week_string(day_index)
    print(f"The day of the week for {date_input} is {day_name}.")
    
  • Usuario J: Destaca lo importante que es la notación en matemáticas. Menciona que es un elemento muy importante tanto en matemáticas como en ciencias de la computación.

  • Usuario K: Si alguien puede hacer esto en menos de 20 segundos, le parece impresionante. No se consideraba una "calculadora rápida".