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

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>
            欧美日韩福利| 国产精品久久久久久久久久免费看 | 亚洲精品老司机| 国产亚洲人成a一在线v站| 亚洲春色另类小说| 欧美日一区二区在线观看 | 国产精品扒开腿做爽爽爽软件| 国产精品va| 99精品免费视频| 欧美电影电视剧在线观看| 亚洲视频免费在线| 欧美日韩大片| 欧美视频中文字幕| 亚洲欧美日韩在线一区| 老司机久久99久久精品播放免费| 欧美成人免费播放| 国产精品日韩一区| 亚洲国产精品成人| 亚洲一区二区视频| 蜜桃av一区二区三区| 一区二区三区回区在观看免费视频| 一本久久知道综合久久| 亚洲影视综合| 欧美激情一二区| 欧美在线视频免费播放| 欧美日韩综合另类| 亚洲精品国产精品国自产在线| 亚洲欧美日韩一区二区三区在线观看| 久久精品在线观看| 亚洲一区二区三区涩| 欧美乱大交xxxxx| 亚洲国产高潮在线观看| 久久精品中文| 久久精品国产综合| 激情一区二区三区| 久久www免费人成看片高清| 一区二区三区视频观看| 欧美久久久久| 一区二区91| 亚洲精品1区2区| 欧美国产激情| 日韩视频免费| 欧美丰满少妇xxxbbb| 久久精品国产亚洲a| 伊人成人在线视频| 亚洲国产你懂的| 欧美午夜久久| 快射av在线播放一区| 久久亚洲不卡| 一区二区三区精品在线| 一区二区三区鲁丝不卡| 国产自产在线视频一区 | 裸体歌舞表演一区二区| 日韩午夜精品视频| 99综合视频| 在线亚洲伦理| 91久久中文字幕| 亚洲男人的天堂在线aⅴ视频| 精品福利av| 亚洲亚洲精品在线观看| 亚洲国产国产亚洲一二三| 日韩视频在线你懂得| 亚洲国产精品第一区二区| 亚洲视频一区在线| 亚洲欧洲在线观看| 久久精品国产第一区二区三区| 亚洲美女黄网| 免费观看成人www动漫视频| 亚洲天堂久久| 亚洲精品123区| 久久精品99国产精品酒店日本| 亚洲精品在线观看免费| 久久精品国产欧美激情| 欧美一区二区三区婷婷月色| 欧美日韩mv| 亚洲毛片在线看| 夜夜嗨av一区二区三区网站四季av| 欧美在线亚洲| 欧美成人精品一区| 亚洲黄色免费| 欧美视频亚洲视频| 9l国产精品久久久久麻豆| 中文精品视频| 国产原创一区二区| 久久全球大尺度高清视频| 欧美高清不卡在线| 伊伊综合在线| 欧美a级片网| 亚洲理伦在线| 久久精品视频播放| 有码中文亚洲精品| 午夜在线a亚洲v天堂网2018| 国产欧美在线播放| 欧美在线视频不卡| 麻豆av一区二区三区| 一本久道久久久| 国产主播一区二区| 欧美日精品一区视频| 久久精品一区蜜桃臀影院 | 久久久久久夜精品精品免费| 精品88久久久久88久久久| 欧美日本韩国一区二区三区| 性做久久久久久| 一区二区三区国产精华| 欧美激情按摩在线| 久久久精品tv| 久久久蜜桃精品| 久久精品国产一区二区三区免费看| 日韩视频一区二区在线观看 | 久久久久久夜| 久久黄色级2电影| 欧美一区二区成人6969| 亚洲图中文字幕| 亚洲美女在线国产| 亚洲高清免费在线| 在线视频国产日韩| 亚洲品质自拍| 亚洲手机在线| 久久精品视频播放| 老司机午夜精品视频在线观看| 久久久夜色精品亚洲| 亚洲丰满在线| 亚洲美女在线看| 亚洲专区一二三| 欧美一区二区三区在线播放| 欧美在线播放一区| 久久久国产成人精品| 久久久久久9999| 亚洲精品国产欧美| 午夜精品一区二区三区在线| 亚洲免费在线看| 欧美日韩国产精品自在自线| 国产精品黄视频| 亚洲韩国日本中文字幕| 亚洲欧美自拍偷拍| 欧美福利电影在线观看| 亚洲一区二区成人| 欧美精品久久99| 国内视频一区| 欧美一进一出视频| 亚洲激情小视频| 久久久免费观看视频| 国产精品久久影院| 亚洲视频日本| 亚洲韩国精品一区| 久久免费视频在线| 好吊色欧美一区二区三区四区| 亚洲一区美女视频在线观看免费| 蜜桃伊人久久| 久久国产精品免费一区| 国产精品免费福利| 亚洲欧美国产高清| 一本久久a久久精品亚洲| 欧美劲爆第一页| 国产精品99久久久久久宅男 | 欧美精品一区二区三区高清aⅴ| 国内精品一区二区三区| 久久全国免费视频| 欧美在线中文字幕| 欧美福利视频| 极品尤物久久久av免费看| 午夜精品视频网站| 久久国产精彩视频| 亚洲高清视频在线观看| 一区视频在线看| 亚洲第一精品夜夜躁人人爽| 久久躁日日躁aaaaxxxx| 亚洲国产精品专区久久| 亚洲精选中文字幕| 国产一区白浆| 欧美黄色日本| 国产一区二区三区av电影| 欧美成人福利视频| 国产精品红桃| 亚洲第一视频网站| 国产欧美另类| 91久久在线播放| 亚洲国产二区| 久久精品国产2020观看福利| 亚洲午夜小视频| 国产精品乱码一区二区三区| 美日韩免费视频| 午夜一区二区三视频在线观看| 亚洲国产99精品国自产| 久久狠狠婷婷| 看欧美日韩国产| 亚洲国产日韩一区二区| 欧美国产日韩免费| 久久久欧美一区二区| 国产麻豆视频精品| 久久性天堂网| 国产农村妇女精品一二区| 一区电影在线观看| 久久综合给合久久狠狠色| 久久se精品一区精品二区| 国内欧美视频一区二区| 久久久www成人免费无遮挡大片 | 欧美一区二区三区在线看| 校园激情久久| 国产精品99一区二区|