えびちゃんの日記

えびちゃん(競プロ)の日記です。

2023-11-01から1ヶ月間の記事一覧

ポインタ木なしで償却 O(log(n)²) 時間の predecessor query

お風呂で思いついたシリーズです。 できる操作は次の通りです。 $\texttt{new}()$ $∅$ で初期化する $S.\texttt{insert}(x)$ $S ← S ∪ \{x\}$ で更新する $S.\texttt{remove}(x)$ $S ← S \smallsetminus \{x\}$ で更新する $S.\texttt{less}(a)$ $\max {\{x∈…

xx.yy を 100 倍したら xxyy にできる?

小数点以下が高々 2 桁まである値が十進表記で与えられたとき、「それを浮動小数点数型に parse してから 100 倍する」ことで、元の値の小数点を 2 つぶん動かしたものにできますか?という話です。 >>> print(f'{float("10.00")*100:.100g}') 1000 >>> prin…

u64 の平方根を f64 で計算するやつに関して

符号なしの 64-bit 整数型の値に関して平方根を計算したい局面はそこそこあります。 しかし、多くの言語ではそのための関数が用意されておらず、浮動小数点数型用のメソッドを使う人が多くいます。 今回は、そうした方針が妥当か?(誤差が出うることを踏ま…

(1.0 / 49.0) * 49.0 < 1.0 について

仮数部の精度が 53 bits の浮動小数点数型で計算すると下記のようになります。 >>> 1 / 49 * 49 0.9999999999999999 >>> f'{1/49*49:.100g}' '0.99999999999999988897769753748434595763683319091796875' 今回はこれについて掘り下げます。 記法・前提知識 …