青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅信:勤能補拙

從n個items中隨機選擇m個的問題

問題來源: 編程珠璣

解法一:
遍歷這n個items,巧妙地利用概率來篩選
void
generate_random_m_from_n(
int n, int m)
{
    
int i, remaining, select = m;
    srand(time(NULL));
    
for(i=0; i<n; i++) {
        remaining 
= n - i;
        
if(rand()%remaining < select) {
            printf(
"%d\t", i);
            
--select;
        }
    }
    printf(
"\n");
}

解法二:
shuffle,即隨機洗牌程序,然后選擇前m個items即可
代碼參考: http://blog.fuqcool.com/2011/04/17/algorithm-shuffle.html

洗牌算法的一種實現(xiàn)

作者:fuqcool 發(fā)布時間:2011-04-17 23:16:02 分類: algorithms

最近自己在做一個小的程序,需要把一個集合里面的元素全部隨機地打散。自己想了一個方法,復雜度是n,覺得不太快。后來參照了一下python關(guān)于shuffle的算法,發(fā)現(xiàn)我的方法跟它的是一樣的,連python的代碼都這么寫,可能已經(jīng)沒有辦法再快了吧!

下面就來介紹洗牌算法,用C語言描述。

算法的前提是有一個產(chǎn)生隨機數(shù)的函數(shù)

// Generates a random integer between beg and end.
int GetRandomNumber(int beg, int end);

還有一個交換函數(shù)。

// Swap a and b.
void Swap(int a, int b);

上面兩個函數(shù)我就不寫出實現(xiàn)了,因為這篇文章的重點在于算法的討論。

假設我們有一堆撲克牌,怎么才能把這副牌完全打亂呢?計算機當然不能像人手那樣洗牌。但是它可以產(chǎn)生隨機數(shù),隨機地從一副牌中抽出一張牌是可以的。既然這樣那就好辦了,我們不停地從牌堆中隨機抽取一張撲克牌,然后把這些牌堆起來,直到原來的牌堆只剩下一張牌的時候為止。這樣不就完成了洗牌的動作了嗎。

下面是C代碼:

int Shuffle(int[] a, int len)
{
    for (int i = len - 1; i > 0; i--)
    {
        // Select an element from index 0 to i randomly;
        int index = GetRandomNumber(0, i);
        // exchange a[i] with a[index]
        Swap(a[index], a[i]);
    }
}

順便也貼出python的random單元關(guān)于shuffle的實現(xiàn):

def shuffle(self, x, random=None, int=int):
    """x, random=random.random -> shuffle list x in place; return None.

    Optional arg random is a 0-argument function returning a random
    float in [0.0, 1.0); by default, the standard random.random.
    """

    if random is None:
        random = self.random
    for i in reversed(xrange(1, len(x))):
        # pick an element in x[:i+1] with which to exchange x[i]
        j = int(random() * (i+1))
        x[i], x[j] = x[j], x[i]

posted on 2011-07-18 09:32 simplyzhao 閱讀(487) 評論(0)  編輯 收藏 引用 所屬分類: M_面試題集錦

導航

<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

統(tǒng)計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品国产亚洲一区二区三区 | 欧美成年人网| 欧美在线你懂的| 午夜精品一区二区三区四区 | 久久精品亚洲精品国产欧美kt∨| 欧美日韩在线播放一区二区| 亚洲一区二区伦理| 亚洲欧美第一页| 久久国产精品一区二区三区四区 | 亚洲精品一区二区网址| 日韩视频中午一区| 亚洲欧美激情诱惑| 久久久久在线| 亚洲精品一区二区三区婷婷月| 99国产精品| 久久国产精品高清| 欧美国产日韩在线| 国产精品毛片a∨一区二区三区| 国产精品久久久一区麻豆最新章节 | 一区二区高清视频在线观看| 午夜在线精品偷拍| 欧美黄网免费在线观看| 亚洲欧美成人一区二区在线电影 | 免费欧美高清视频| 亚洲精选成人| 久久精品国产一区二区三区免费看| 免费久久精品视频| 国产欧美一区二区三区在线老狼 | 欧美专区在线观看| 欧美激情一二三区| 伊人久久婷婷色综合98网| 中文欧美在线视频| 久久婷婷丁香| 亚洲自拍啪啪| 欧美理论电影在线播放| 在线播放视频一区| 久久久精品国产免大香伊 | 亚洲一品av免费观看| 欧美精品国产一区| 在线观看国产精品网站| 欧美一站二站| 亚洲午夜在线视频| 麻豆9191精品国产| 国产日韩欧美高清| 午夜精品亚洲| 日韩一级在线观看| 久久影音先锋| 欧美国产视频一区二区| 欧美一区二区成人| 中文精品视频一区二区在线观看| 国产欧美丝祙| 欧美区一区二| 美女主播精品视频一二三四| 国产精品视频1区| 午夜激情久久久| 伊人久久久大香线蕉综合直播| 老司机一区二区三区| 欧美日韩高清在线| 午夜综合激情| 日韩视频在线一区二区| 亚洲免费观看高清完整版在线观看熊| 亚洲三级影片| 欧美日韩一区二区三区在线 | 欧美一级欧美一级在线播放| 欧美午夜精品理论片a级大开眼界| 亚洲精品在线免费| 欧美成人按摩| 农村妇女精品| 一本大道av伊人久久综合| 亚洲精品极品| 美女国产一区| 在线亚洲成人| 亚洲一区二区伦理| 国内精品国产成人| 欧美成在线视频| 欧美精品一区二区三区蜜桃 | 欧美成人久久| 99在线热播精品免费| 99日韩精品| 老司机一区二区三区| 久久亚洲精品欧美| 亚洲国产日韩欧美在线99| 亚洲经典自拍| 国产精品嫩草影院av蜜臀| 久久久久综合网| 欧美日韩1区2区| 欧美资源在线观看| 欧美mv日韩mv国产网站app| 亚洲午夜视频在线| 久久资源av| 亚洲影音一区| 欧美日韩精品一本二本三本| 一本到高清视频免费精品| 在线不卡中文字幕播放| 久久婷婷国产综合国色天香| 亚洲一线二线三线久久久| 激情欧美一区二区三区在线观看 | 一区二区日韩免费看| 国产亚洲激情| 亚洲欧洲日本国产| 国产女主播一区二区| 亚洲激情第一区| 国外成人在线视频网站| 一区二区三区免费看| 在线观看亚洲精品| 亚洲欧美日本伦理| 在线视频你懂得一区二区三区| 亚洲图片欧洲图片av| 亚洲精品久久久久久下一站| 午夜亚洲福利| 午夜精品婷婷| 欧美日韩视频一区二区三区| 你懂的一区二区| 亚洲午夜精品久久久久久浪潮| 国产一区二区三区免费在线观看 | 久久久久久97三级| 国产精品成人v| 亚洲区欧美区| 91久久综合| 老司机午夜免费精品视频| 久久精品av麻豆的观看方式 | 欧美性猛交xxxx免费看久久久| 久久久久国产免费免费| 国产精品www| 最新成人av网站| 亚洲缚视频在线观看| 久久国内精品视频| 久久国产综合精品| 国产精品综合色区在线观看| 亚洲一区二区av电影| 午夜精品在线观看| 国产乱码精品一区二区三区忘忧草| 一区二区三区偷拍| 亚洲影视综合| 国产精品国产三级国产普通话三级 | 久久一区亚洲| 国产一区二区三区免费在线观看| 亚洲免费一在线| 午夜激情综合网| 国产日本欧美视频| 久久成人精品无人区| 亚洲午夜久久久久久久久电影网| 欧美成人一区二区三区在线观看| 亚洲黄色精品| 亚洲一品av免费观看| 国产精品久久久久久av福利软件 | 国产欧美日韩免费| 欧美精品一区二区三| 欧美伊人久久久久久久久影院| 激情视频一区| 一本色道精品久久一区二区三区 | 国产一区二区日韩精品| 欧美成ee人免费视频| 亚洲欧美精品在线| 亚洲缚视频在线观看| 一个人看的www久久| 国产亚洲精品7777| 欧美日韩性视频在线| 久久综合九色综合欧美狠狠| 亚洲砖区区免费| 一本大道久久a久久精二百| 欧美.日韩.国产.一区.二区| 欧美亚洲日本网站| 亚洲午夜电影在线观看| 亚洲精品一二三区| 在线看视频不卡| 国产综合在线看| 国产伦精品一区二区三区高清| 亚洲一区视频在线| 国产欧美一区二区三区视频| 欧美日韩国产123区| 美女网站在线免费欧美精品| 中文亚洲视频在线| 日韩视频一区二区在线观看 | 午夜精品久久久久久久久| 亚洲人成免费| 亚洲电影在线播放| 欧美激情一区二区三区蜜桃视频| 久久久久一区二区三区四区| 久久国产精品99国产| 久久国产精品一区二区三区四区 | 中文精品在线| 亚洲在线一区二区| 亚洲午夜视频在线观看| 亚洲天堂av图片| 亚洲自啪免费| 久久国产手机看片| 久久久久久**毛片大全| 久久在线播放| 欧美激情第4页| 亚洲人成免费| 中文亚洲字幕| 欧美在线观看一二区| 久久免费高清视频| 欧美在线视频一区| 欧美精品一区二区蜜臀亚洲| 久久亚洲精品欧美| 久久伊伊香蕉| 亚洲电影自拍| 99re热这里只有精品免费视频|