一個數(shù)據(jù)壓縮算法

  • 從數(shù)據(jù)中均勻地提取一組數(shù)據(jù),有一個比較經(jīng)典的算法
  • 以前在做數(shù)據(jù)抽取時非常地熟練
  • 今天再次使用時,居然忘了怎樣實現(xiàn)了,主要是理不清求余和求商間的使用關(guān)系了
  • 簡單推導(dǎo)一下
    • 總共s個數(shù),均勻地分成n組,每組有g(shù)個,余數(shù)為 m
    • 即:s = g*n + m
    • 那么每輸出一組 就 累計一次 n,則 總共累計數(shù)值 為 n * m
    • 所以,可以指定如下的規(guī)則:
      • 每輸出一組后,累計一次m
      • 當(dāng)m大于或等于n是,回滾一次n,而且當(dāng)前組數(shù)量為g+1
      • 由于是從0開始累計的,所以第一組的數(shù)量一定為 g
      • 這樣總共可以回滾m次
      • m就是余數(shù)
//! now for compress
    int rad, rem;

    rad = inLen / maxOutLen;
    rem = inLen % maxOutLen;

    //! now for compress
    int acc = 0;
    int outIndex = 0;
    for ( int i = 0; i < maxOutLen; i++, outIndex += rad )
    {

        pOut[ i ] = pIn[ outIndex * skipI ];

        acc += rem;
        if ( acc >= maxOutLen )
        {
            acc -= maxOutLen;
            outIndex++;
        }
    }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,123評論 6 13
  • 這個不錯分享給大家,從扣上看到的,就轉(zhuǎn)過來了 《電腦專業(yè)英語》 file [fail] n. 文件;v. 保存文...
    麥子先生R閱讀 6,602評論 5 24
  • 一年級語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,860評論 0 6
  • 1. 所謂“終極三問”,是為:是何,為何,如何。 如果從這三個角度來論述“終極三問”,是何:一種解決所有問題的思辨...
    Mc暮煙閱讀 1,749評論 2 7
  • 不久就是2018年了 那 我愛你有多了一年
    行走的春閱讀 231評論 0 0