投稿Google の Leap Second Smear Techinqueで言及されている式:午前 0 時より前の時間枠で「嘘」を変調する:
lie(t) = (1.0 - cos(pi * t / w)) / 2.0
この背後にある数学の説明はありません。誰かが式が機能する理由を説明できますか. また、ウィンドウ上で時間を徐々に同期させ、突然のジャンプを回避したい場合に、これを使用できますか?
投稿Google の Leap Second Smear Techinqueで言及されている式:午前 0 時より前の時間枠で「嘘」を変調する:
lie(t) = (1.0 - cos(pi * t / w)) / 2.0
この背後にある数学の説明はありません。誰かが式が機能する理由を説明できますか. また、ウィンドウ上で時間を徐々に同期させ、突然のジャンプを回避したい場合に、これを使用できますか?
のグラフはcos(x)
時間の経過とともに滑らかに変化するため、これは機能します。急激に変化するわけではありませんが、非線形に変化します。
のウィンドウに塗りつけているとしましょうw = 86400
。嘘の元は次のt = 0
とおりt = 86400
です。
一日の始まりに向かって、私たちが言っている嘘はとても小さいものです。報告している時間 ( t + lie(t)
) は、実際の時間 ( ) とほぼ同じですt
。あなたが報告している汚れた時間も、時間の経過とともに非常にゆっくりと変化しています。理想的には、実際の 1 秒が経過するたびに、1 秒経過したことを報告する必要があります。塗りつぶされた時間では、代わりに次のように表示されます。
日中に向けて、最大の変化が見られます。しかし、これらの変更は のオーダーです10^-5
。それらは十分に小さいので、不鮮明な時間を受け取った人は、何かがおかしいとは思わないでしょう。正午には、汚れた時間がどれだけ速く動いているかというマイクロ秒の違いについて話している.
Google の場合、ローカルな修正が発生しないように、時間を非常にゆっくりとスムーズに変更したいと考えています。1 秒単位で急激に時間を変更すると、ローカルな修正が発生する可能性があります。ブログの投稿によると、これは通常、非常に悪いことが起こる (つまり、何かが壊れる) ことにつながるようです。
注意すべきことの 1 つは、うるう秒が 1 日にわたって塗りつぶされていない可能性があることです。丸一年以上かかることもあります。その場合、変化はさらに小さくなります。この場合、日々の変化はナノ秒単位です。
実際の数学について知りたい場合は、その部分はあまり面白くありません。cos(x)
[-1, +1] によって制限されます。にとx = 0
がcos(0) = 1
あります。値は から 0 から 1 まで直線的に増加します。そのため、 at down からatに変わります。残りはこれからです。x = pi
cos(pi) = -1
t / w
t = 0 ... w
cos(pi * t / w)
+1
t = 0
-1
t = w
の周期性cos(x)
は実際には非常に重要です。のようなものを使用することを選択することはできませんlie(t) = t / w
。もしそうなら、嘘は常に時間の経過とともに増加します. うるう秒は、1 秒あたりの割合で積み重なっていき1 / w
ます。cos(x)
と の間で振動する性質が-1
あり+1
ます。
ちょっと推測します。
cos() は -1 から +1 の範囲の値を出力するため、cos が -1 のときが最大のライになります。
(1.0 - -1)/2 == 1.0
そして cos が +1 となる最小値
(1.0 - 1)/2 == 0.0
0.0 は「嘘をつかない」に適した値であり、1.0 は「うるう秒」に適した値であることに注意してください。
関数のプロットを次に示します。0 から 1 への段階的な移行がスムーズに行われていることがわかります。
cos: への引数を計算するために使用される式についてはpi * t / w
、関数が -1 から 1 に遷移する速度/間隔を変更するものと考えることができます。t を大きくすると遷移が速くなり、w を大きくすると遷移が速くなります。移行が遅くなります。
彼らは、w は公式のうるう秒が適用される前の時間枠であると述べたので、それを秒単位で取ります。次に、t は増加する数、おそらく秒になる可能性があります。