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

A Za, A Za, Fighting...

堅(jiān)信:勤能補(bǔ)拙

從n個(gè)items中隨機(jī)選擇m個(gè)的問題

問題來源: 編程珠璣

解法一:
遍歷這n個(gè)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,即隨機(jī)洗牌程序,然后選擇前m個(gè)items即可
代碼參考: http://blog.fuqcool.com/2011/04/17/algorithm-shuffle.html

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

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

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

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

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

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

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

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

上面兩個(gè)函數(shù)我就不寫出實(shí)現(xiàn)了,因?yàn)檫@篇文章的重點(diǎn)在于算法的討論。

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

下面是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的實(shí)現(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) 評(píng)論(0)  編輯 收藏 引用 所屬分類: M_面試題集錦

導(dǎo)航

<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久久久久综合| 一区二区三区视频在线| 欧美插天视频在线播放| 亚洲欧美日韩一区| 性欧美xxxx视频在线观看| 亚洲欧美国产另类| 欧美一级欧美一级在线播放| 香蕉视频成人在线观看 | 亚洲国产一区二区视频| 亚洲国产精品一区二区第四页av | 国产视频综合在线| 精品不卡在线| 91久久精品国产91性色tv| 亚洲精品女人| 欧美亚洲视频| 免费日本视频一区| 一本色道久久综合亚洲精品婷婷| 亚洲一区二区三区欧美| 久久久久久夜| 欧美性色aⅴ视频一区日韩精品| 欧美午夜一区| 亚洲国产二区| 性欧美xxxx大乳国产app| 久久人人97超碰精品888| 亚洲高清一二三区| 亚洲老板91色精品久久| 欧美一区二区观看视频| 农村妇女精品| 国产中文一区二区| 日韩一二在线观看| 久久一区二区三区四区| 亚洲激情女人| 久久av资源网| 国产精品久久久久aaaa樱花| 伊人夜夜躁av伊人久久| 亚洲一区在线播放| 欧美成年人网| 欧美一区二区私人影院日本 | 国产欧亚日韩视频| 99国产精品久久久久久久久久| 久久精品人人做人人爽电影蜜月| 亚洲欧洲日产国产综合网| 久久久久www| 国产欧美精品一区aⅴ影院| 日韩午夜视频在线观看| 免费看的黄色欧美网站| 亚洲欧美日韩国产成人精品影院| 欧美精品国产精品| 亚洲精品国产视频| 牛牛影视久久网| 亚洲专区欧美专区| 亚洲人成网站影音先锋播放| 性做久久久久久免费观看欧美| 亚洲国产精品国自产拍av秋霞| 午夜激情综合网| 国产精品区一区二区三区| 99视频一区| 亚洲人在线视频| 欧美激情小视频| 99在线观看免费视频精品观看| 久久女同互慰一区二区三区| 午夜精品久久久久久久99樱桃| 国产精品久久二区| 亚洲综合首页| 亚洲一区二区三区在线观看视频 | 亚洲欧美国产制服动漫| 日韩一级精品视频在线观看| 欧美成人情趣视频| 亚洲美女诱惑| 日韩一级黄色片| 欧美午夜在线一二页| 亚洲免费视频在线观看| 亚洲一区二区三区涩| 国产欧美一区二区三区国产幕精品| 亚洲制服av| 亚洲欧美日本精品| 黄色工厂这里只有精品| 久久亚洲捆绑美女| 男女av一区三区二区色多| 亚洲精品乱码| 亚洲午夜伦理| 尤物九九久久国产精品的特点| 免费在线亚洲欧美| 欧美国产亚洲视频| 午夜精品福利视频| 久久精品系列| 亚洲精品视频免费| 夜夜嗨av一区二区三区四区| 国产精品午夜电影| 免费91麻豆精品国产自产在线观看| 久久综合伊人77777| 亚洲免费电影在线观看| 亚洲视频精选| 亚洲福利视频三区| 一本大道av伊人久久综合| 国内精品久久久久伊人av| 亚洲国产成人精品女人久久久| 欧美日韩在线第一页| 久久九九99视频| 欧美日韩在线播放一区| 久久久午夜电影| 欧美连裤袜在线视频| 久久精品视频在线播放| 欧美96在线丨欧| 香蕉成人啪国产精品视频综合网| 久久久久女教师免费一区| 亚洲午夜精品久久久久久浪潮 | 欧美在线精品一区| 亚洲伦伦在线| 性欧美xxxx大乳国产app| 亚洲精品美女在线观看| 亚洲欧美日韩国产| 99亚洲伊人久久精品影院红桃| 久久成人一区| 亚洲欧美变态国产另类| 欧美成年人网| 老鸭窝亚洲一区二区三区| 欧美网站在线观看| 亚洲欧洲日本mm| 亚洲国产一区二区三区青草影视 | 国产精品一二一区| 亚洲青色在线| 亚洲国产黄色片| 欧美在线在线| 欧美亚洲自偷自偷| 欧美日韩亚洲国产一区| 欧美激情欧美狂野欧美精品| 国产欧美亚洲视频| 亚洲午夜高清视频| 亚洲在线中文字幕| 欧美手机在线| 日韩视频在线观看免费| 亚洲人成77777在线观看网| 久久久久久成人| 久久免费99精品久久久久久| 国产欧美不卡| 欧美一区二区久久久| 久久9热精品视频| 国产欧美日韩在线| 午夜精品久久久久久久久| 午夜视频一区二区| 国产精品v亚洲精品v日韩精品 | 亚洲国产精品尤物yw在线观看| 久久久精彩视频| 狂野欧美一区| 亚洲国产精品999| 欧美插天视频在线播放| 亚洲国产小视频在线观看| 亚洲国产视频一区| 欧美精品三区| 一区二区三区视频免费在线观看| 中国亚洲黄色| 国产精品久久久久999| 午夜精品福利视频| 久久久久久久久久码影片| 极品中文字幕一区| 免费观看成人网| 一本色道久久综合亚洲精品小说| 亚洲一区二区三区视频| 国产伦精品一区二区三区视频黑人| 欧美一区网站| 亚洲国产午夜| 久久精品成人| 亚洲精品小视频| 一区二区三区四区蜜桃| 欧美亚洲成人免费| 欧美视频精品在线| 欧美日韩国产不卡| 亚洲欧美在线另类| 麻豆91精品| 国产精品99久久久久久久久久久久| 欧美视频在线免费| 久久久久国产成人精品亚洲午夜| 欧美激情一区二区三区在线| 在线亚洲美日韩| 国产一区二区三区四区三区四| 久久综合伊人| 亚洲欧美日本视频在线观看| 欧美激情1区2区3区| 亚洲欧美卡通另类91av| 尤物yw午夜国产精品视频| 国产精品theporn88| 久久欧美中文字幕| 亚洲一区二区毛片| 亚洲国产一区二区视频| 欧美在线观看网址综合| 亚洲精品综合在线| 狠狠色丁香久久婷婷综合_中| 欧美精品一区二区三区四区| 香港久久久电影| 亚洲免费观看视频| 欧美大片免费观看| 欧美一级黄色录像| 一区二区激情小说| 91久久线看在观草草青青| 国产在线国偷精品产拍免费yy| 欧美色123| 欧美日韩亚洲天堂| 欧美精品在线网站| 欧美成人免费全部观看天天性色|