2012-07-01 8 views
23

La fórmula mencionada en el puesto Google's Leap Second Smear Techinque: Modulación de “mentira” a través de una ventana de tiempo antes de la medianoche w:matemáticas detrás de Google salto fórmula segundo frotis

lie(t) = (1.0 - cos(pi * t/w))/2.0 

No hay ninguna descripción de las matemáticas detrás de esto. ¿Alguien puede explicar por qué funciona la fórmula? ¿Puede usarse también para cualquier situación en la que deseemos sincronizar el tiempo gradualmente sobre una ventana y evitar saltos abruptos?

+1

¡Qué solución tan tonta! Tengo curiosidad por qué Google no solo hizo lo que la mayoría de las personas que se preocupan por el tiempo y utilizan un esquema de tiempo que no tiene segundos intercalares como TAI o tiempo de GPS. –

Respuesta

40

Esto funciona porque el gráfico de cos(x) varía suavemente con el tiempo. No cambia abruptamente, aunque sí cambia de forma no lineal.

Digamos que estamos untando una ventana de w = 86400. Esto es lo que la mentira es t = 0-t = 86400:

Graph of lie(t)

Hacia el comienzo de la jornada, la mentira que estamos contando es muy pequeño. El tiempo que está informando (t + lie(t)) es casi idéntico a lo que debería ser el tiempo real (t). El tiempo borroso que informas también está cambiando muy lentamente con el tiempo. Idealmente, por cada 1 segundo real que pase, debe informar que ha pasado 1 segundo. Con el tiempo manchado, lo que se ve es en cambio:

Change in smeared time

Hacia la mitad del día, vemos los mayores cambios. Pero esos cambios están en el orden de 10^-5. Son lo suficientemente pequeños como para que cualquiera que reciba el tiempo difuminado no sospeche que algo anda mal. Al mediodía, estás hablando de diferencias de microsegundos en cuánto tiempo se mueve más rápido.

En el caso de Google, quieren cambiar suavemente el tiempo muy lentamente para que las correcciones locales no ocurran. Si cambian bruscamente el tiempo en un segundo, pueden ocurrir correcciones locales. Y desde la publicación del blog, parece que esto generalmente lleva a que sucedan cosas muy malas (es decir, interrupciones).

Una cosa a tener en cuenta es que no pueden manchar el salto de segundo en un día. Puede ser durante un año completo. En ese caso, el cambio es aún más pequeño. En este caso, los cambios diarios son del orden de nanosegundos.

Si quieres saber sobre las matemáticas reales, esa parte no es muy interesante. cos(x) está limitado por [-1, +1]. En x = 0 tenemos cos(0) = 1 y en x = pi, cos(pi) = -1. El valor t/w aumenta linealmente de 0 a 1 desde t = 0 ... w. Entonces cos(pi * t/w) cambia de +1 a t = 0 hasta -1 en t = w. El resto se deduce de esto.

Las cualidades periódicas de cos(x) son muy importantes. No podemos simplemente elegir usar algo como lie(t) = t/w. Si lo hiciéramos, la mentira siempre aumentaría con el tiempo. Los segundos intercalares seguirían acumulándose a una tasa de 1/w por segundo. cos(x) tiene la propiedad de que oscila entre -1 y +1.

+1

Te mereces más votos favorables. – Pacerier

+3

No estoy de acuerdo con la última parte sobre el uso de una corrección lineal. Si bien no es tan fácil y podría causar problemas, la mentira no aumentaría para siempre ya que el sistema simplemente reemplazaría eso por un rendimiento constante cuando se acabe el tiempo. También es lo mismo con el 'cos', una vez que pasa el segundo intercalar, el lie se convierte exactamente en cero. – meneldal

2

Supongo que sí.

cos() muestra los valores en el rango de -1 a +1 así, la máxima mentira sería cuando cos es -1, porque

(1.0 - -1)/2 == 1.0 

y el min cuando cos es 1

(1.0 - 1)/2 == 0.0 

Tenga en cuenta que 0.0 sería un valor adecuado para "no mentir" y 1.0 sería un valor adecuado para el "segundo intercalar".

aquí hay un argumento de la función, se puede ver que tiene una transición gradual agradable y suave de 0 a 1.

enter image description here

como para la expresión utilizada para calcular el argumento a cos: pi * t/w, solo se puede pensar que cambian la velocidad/intervalo en que la función pasa de -1 a 1. Hacer t más grande hace que la transición sea más rápida, y al aumentar w hace que la transición sea más lenta.

Mencionaron que w era la ventana de tiempo antes de que se aplicara el segundo salto oficial, así que tómenlo en segundos. Entonces, podría haber un número creciente, probablemente segundos nuevamente.

Cuestiones relacionadas