• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            concentrate on c/c++ related technology

            plan,refactor,daily-build, self-discipline,

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(9)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            實現(xiàn)這個有這三種辦法:
            1)隨機排序,按照順序先后取出M個數(shù)字。
             IntVec shuffle(IntVec& vec)
            133 {
            134 int size = vec.size();
            135 IntVec::iterator first = vec.begin();
            136 IntVec::iterator last = vec.end();
            137 for(IntVec::iterator i = first + 1; i != last; ++i)
            138 {
            139 std::iter_swap(i, first + rand()%((i - first)+ 1));
            140 }
            141 return vec;
            142 }
            這個呢,不會影響源數(shù)組,這個
            2)取M次,每次做個事情就是隨機出一個數(shù),添加到目標數(shù)組里面,然后從源數(shù)組中刪除。。
            143
            144 IntVec shuffle(IntVec& vec, int count)
            145 {
            146     IntVec desVec;
            147     for(int i = 0; i < count;i++)
            148     {
            149         int random = rand()%vec.size();
            150         desVec.push_back(vec[random]);
            151         vec.erase(remove(vec.begin(),vec.end(),vec[random]),vec.end());
            152     }  
            153     return desVec;
            154 }
            這個呢,會影響源數(shù)組。
            3)取M次,借助一個輔助數(shù)組記錄哪個數(shù)據(jù)被取過,隨機出一個數(shù),添加到目標數(shù)組里面,然后將這個值添加到輔助數(shù)組里面.
             IntVec shuffle2(IntVec& vec, int count)
            158 {
            159     IntVec desVec;
            160     IntVec flagVec;
            161     for(int j = 0; j < count; j++)
            162     {
            163         flagVec.push_back(0);
            164     }
            165     for(int i = 0; i < count;i++)
            166     {
            167
            168         int random = rand()%vec.size();
            169         if (flagVec[random] == 0)
            170         {
            171             desVec.push_back(vec[random]);
            172             flagVec[random] = 1;
            173         }
            174         else
            175         {
            176             i--;// 如果已經(jīng)取過了,這次不算.
            177         }
            178
            179     }
            180     return desVec;
            181 }
            posted on 2016-04-02 11:51 jolley 閱讀(1286) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結構與算法
            中文成人久久久久影院免费观看| 亚洲国产成人久久精品影视| 久久精品亚洲男人的天堂| 久久99精品久久久久久不卡| 人妻精品久久久久中文字幕| 国产欧美久久久精品影院| 久久久噜噜噜久久中文福利| 99久久精品无码一区二区毛片| 亚洲人成无码久久电影网站| 亚洲va中文字幕无码久久| 精品免费久久久久国产一区| 亚洲AV无码久久精品狠狠爱浪潮| 中文字幕亚洲综合久久| 亚洲va久久久噜噜噜久久天堂| 久久久久综合中文字幕| 69久久夜色精品国产69| 精品国产99久久久久久麻豆| 久久国产综合精品五月天| 久久精品亚洲中文字幕无码麻豆| 久久久精品视频免费观看| MM131亚洲国产美女久久| 人人狠狠综合久久亚洲| 亚洲成人精品久久| 久久99精品久久久久久久不卡| 久久久久久久波多野结衣高潮| 久久久久一级精品亚洲国产成人综合AV区| 日韩人妻无码精品久久久不卡| 亚洲欧洲久久av| 少妇久久久久久被弄到高潮| 日本免费一区二区久久人人澡| 久久久无码精品亚洲日韩按摩| 久久综合久久综合亚洲| 久久亚洲精品无码观看不卡| 国产一区二区精品久久凹凸| 亚洲一本综合久久| 国产精品久久久久国产A级| 亚洲精品午夜国产VA久久成人| 久久天天躁夜夜躁狠狠| 亚洲综合熟女久久久30p| 久久久久久久97| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 |