pub struct BicrementalMedianDev<M: CommutativeGroup>{ /* private fields */ }Expand description
中央値と偏差の管理。
多重集合 $S$ への要素の追加と削除を行いつつ、中央値と偏差を管理する。 ここで、偏差は中央値との絶対値の総和とする。 $S$ のうち小さい方から $\lceil|S|/2\rceil$ 個取り出したものを $L$、 残りの $\lfloor|S|/2\rfloor$ 個取り出したものを $R$ とする。 中央値を $L$ の最大値として定義し、$a_{\text{med}}$ と書く。 このとき、偏差 $\sigma$ は次のように書ける。 $$ \sigma = \sum_{a\in L} (a_{\text{med}}-a) + \sum_{a\in R} (a-a_{\text{med}}). $$ $\sum_{a\in L} a = \sigma_L$、$\sum_{a\in R} a = \sigma_R$ とすると、 $$ \begin{aligned} \sigma &= \begin{cases} -\sigma_L + \sigma_R, & \text{if } |L| = |R|; \\ -\sigma_L + \sigma_R + a_{\text{med}}, & \text{if } |L| = |R|+1. \\ \end{cases} \end{aligned} $$
Implementations§
Source§impl<M: CommutativeGroup> BicrementalMedianDev<M>
impl<M: CommutativeGroup> BicrementalMedianDev<M>
Trait Implementations§
Source§impl<M: Clone + CommutativeGroup> Clone for BicrementalMedianDev<M>
impl<M: Clone + CommutativeGroup> Clone for BicrementalMedianDev<M>
Source§fn clone(&self) -> BicrementalMedianDev<M>
fn clone(&self) -> BicrementalMedianDev<M>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<M: Debug + CommutativeGroup> Debug for BicrementalMedianDev<M>
impl<M: Debug + CommutativeGroup> Debug for BicrementalMedianDev<M>
Source§impl<M: PartialEq + CommutativeGroup> PartialEq for BicrementalMedianDev<M>
impl<M: PartialEq + CommutativeGroup> PartialEq for BicrementalMedianDev<M>
impl<M: Eq + CommutativeGroup> Eq for BicrementalMedianDev<M>
impl<M: CommutativeGroup> StructuralPartialEq for BicrementalMedianDev<M>
Auto Trait Implementations§
impl<M> Freeze for BicrementalMedianDev<M>
impl<M> RefUnwindSafe for BicrementalMedianDev<M>
impl<M> Send for BicrementalMedianDev<M>
impl<M> Sync for BicrementalMedianDev<M>
impl<M> Unpin for BicrementalMedianDev<M>
impl<M> UnsafeUnpin for BicrementalMedianDev<M>
impl<M> UnwindSafe for BicrementalMedianDev<M>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more