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

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>
            亚洲激情网址| 91久久精品www人人做人人爽 | 欧美伊人精品成人久久综合97 | 久久理论片午夜琪琪电影网| 亚洲欧美国产精品桃花| 亚洲一区二区三区欧美 | 久热这里只精品99re8久| 久久精品亚洲精品| 免费久久久一本精品久久区| 亚洲高清不卡在线| 亚洲欧洲一区二区三区久久| aa日韩免费精品视频一| 亚洲欧美在线另类| 久久久久久穴| 欧美久久久久久| 国产精品国产三级国产专播精品人| 国产精品久久久久av| 国产一区二区在线免费观看| 亚洲国产欧美国产综合一区| 一区二区久久久久久| 欧美在线一二三四区| 欧美大胆成人| 亚洲无限av看| 欧美激情国产日韩| 国产午夜精品视频| 一区二区三区免费网站| 久久综合一区二区三区| 99国产精品| 久久综合色播五月| 国产区在线观看成人精品| 日韩一级大片在线| 久久久激情视频| 亚洲美女av黄| 欧美成人一区二区三区在线观看| 一本色道久久综合狠狠躁的推荐| 久久精品欧美日韩精品| 国产精品国产三级国产普通话99| 一区二区三区我不卡| 亚洲综合999| 亚洲激情在线观看视频免费| 欧美一区=区| 欧美日韩国产精品专区| 国模私拍一区二区三区| 亚洲综合国产激情另类一区| 欧美午夜精品一区二区三区| 久久久999精品视频| 国产精品久久久久久久久久久久| 亚洲成人自拍视频| 欧美在线黄色| 亚洲香蕉网站| 欧美国产乱视频| 亚洲第一综合天堂另类专| 久久成人免费| 亚洲欧美在线免费| 国产日韩精品电影| 欧美综合激情网| 亚洲欧美日韩在线综合| 国产精品久久午夜| 亚洲欧美一区二区三区极速播放| 亚洲精品日韩在线观看| 欧美片第一页| 亚洲无限av看| 夜夜爽av福利精品导航 | 亚洲国产中文字幕在线观看| 久久久久久香蕉网| 精品69视频一区二区三区| 亚洲欧美中文另类| 亚洲一二三区精品| 国产精品qvod| 欧美一级视频一区二区| 亚洲在线观看视频| 国产精品国产三级国产aⅴ入口 | 国产精品久久久久久一区二区三区| 亚洲国产精品久久人人爱蜜臀| 久久综合婷婷| 欧美成人乱码一区二区三区| 亚洲精品小视频| 亚洲欧洲精品一区二区三区波多野1战4| 久久一区亚洲| 最新日韩在线| 一本色道久久综合亚洲精品婷婷 | 亚洲视频每日更新| 欧美日韩中文字幕在线| 亚洲欧美日韩国产综合在线| 亚洲欧美经典视频| 激情久久久久久久| 欧美国产日韩一区二区三区| 欧美精品高清视频| 午夜国产不卡在线观看视频| 久久精品一区二区三区中文字幕| 亚洲国产精品福利| av不卡在线看| 国内精品久久久久久久影视麻豆 | 欧美日韩视频第一区| 99亚洲视频| 91久久久久久| 一本久久综合亚洲鲁鲁| 国产欧美视频一区二区三区| 免费视频最近日韩| 欧美三级黄美女| 久久久精品五月天| 欧美激情一区在线| 久久精品99国产精品酒店日本| 久久精品亚洲精品国产欧美kt∨| 亚洲激情成人在线| 亚洲视频高清| 一本色道久久综合亚洲精品婷婷| 久久国产高清| 午夜免费日韩视频| 欧美成人在线免费观看| 欧美综合二区| 国产精品高清网站| 最新国产精品拍自在线播放| 国产性猛交xxxx免费看久久| 亚洲人屁股眼子交8| 在线观看成人小视频| 亚洲在线视频观看| 日韩小视频在线观看| 久久国产精品久久久久久| 在线亚洲电影| 免费日韩av电影| 久久久久久综合网天天| 国产精品va在线播放| 亚洲高清视频一区| 精品91免费| 久久精品72免费观看| 亚洲欧美日韩精品一区二区| 欧美不卡高清| 老司机精品视频一区二区三区| 国产免费成人av| 亚洲一区三区电影在线观看| 亚洲免费不卡| 欧美成人四级电影| 欧美激情国产日韩精品一区18| 国产亚洲一级高清| 香蕉免费一区二区三区在线观看| 欧美一区二区三区的| 国产精品久久久久久久久动漫| 亚洲国产成人高清精品| 亚洲国产精品一区二区久| 久久成人综合视频| 久久一区国产| 在线看欧美视频| 男男成人高潮片免费网站| 欧美高清一区| 亚洲美女在线一区| 国产精品成人一区二区三区吃奶 | 午夜亚洲福利在线老司机| 欧美日韩中文字幕| 亚洲欧美日韩国产一区| 久久精品中文字幕一区二区三区| 国产欧美日韩视频在线观看| 亚洲欧美一区二区精品久久久| 性刺激综合网| 国产午夜久久| 久久午夜精品一区二区| 亚洲高清不卡| 亚洲在线一区二区三区| 国产伦精品一区二区三区高清版 | 国产人成一区二区三区影院| 欧美日韩精品一区视频 | 99国内精品久久久久久久软件| 亚洲乱码一区二区| 欧美午夜久久| 欧美有码在线观看视频| 91久久在线观看| 欧美日韩精品一二三区| 亚洲一区bb| 久久在线精品| 一本一本大道香蕉久在线精品| 国产精品久久久久77777| 久久精品国产77777蜜臀| 亚洲黄一区二区| 欧美一区二区三区视频在线| 一区在线免费| 亚洲女女女同性video| 亚洲电影在线| 亚洲一区网站| 亚洲欧美国产高清va在线播| 久久国产视频网| 欧美激情精品久久久久久黑人| 亚洲日本激情| 欧美一区在线直播| 亚洲国产日韩欧美在线动漫| 国产精品扒开腿做爽爽爽视频| 久久久久国产成人精品亚洲午夜| 亚洲欧洲三级| 国产精品视频精品| 欧美成人官网二区| 欧美一区深夜视频| 亚洲美女福利视频网站| 裸体歌舞表演一区二区| 亚洲欧美韩国| 亚洲三级电影全部在线观看高清| 国产精品三区www17con| 麻豆精品精华液| 久久爱另类一区二区小说| 一区二区三区四区蜜桃| 欧美成人免费观看| 久久久99爱|