ダブリングライブラリ

ダブリングを行うライブラリを書きました.ソースはこちら . 1. できること 1.1 基本用法 $f : [0, N) \to [0, N)$ が与えられた時, $r \in [0, R]$ と $i \in [0, N)$ に対して $f^{r}(i)$ を 計算する. 1.2 追加用法 上の $f$ とともに,モノイド $(M, \oplus)$ と $m: [0, N) \to M$ も与えられて, $r, i$ に対して $\bigoplus_{k = 0}^{r - 1} m(f^{k}(i))$ も計算する. 典型例: $i \mapsto f(i)$ を1回実行するごとに $m(i)$ だけのコストがかかるとき, $f^r(i)$ の実行に要するコストを求める. $[0..N-1]$ が円環状に並んでいる.$f^r(i)$ の実行で何周するか求める. この場合には,$m(i) := \textrm{ if } r(i) < i \textrm{ then } 1 \textrm{ else } 0$ とすればよい. 1....

2024-09-08 (初版 2022-12-10) yamate11