亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • 我做的google數(shù)組隨機排序的算法

    時間:2020-11-10 18:54:18 筆試題目 我要投稿

    我做的google數(shù)組隨機排序的算法

      發(fā)信人: northor(追求理想的過程是曲折艱辛的!), 信區(qū): Job


    標(biāo) 題: 我做的google數(shù)組隨機排序的算法
    發(fā)信站: 瀚海星云 (2006年05月30日23:44:13 星期二), 站內(nèi)信件 WWWPOST

    由于一開始覺得這個題目不太好做,
    就放在最后做了,
    結(jié)果時間不夠,只寫了算法:

    我考慮題干強調(diào)的是一定要隨機,就是越亂越好,
    于是我就聯(lián)想到了一堆乒乓球在籠子里搖啊搖的,抽獎的過程,
    這個過程應(yīng)該算是符合題目的要求吧,
    那么怎么用random函數(shù)來實現(xiàn)這個功能呢?

    我又建立了三個int型數(shù)組,b[len],c[len],d[len]
    首先N = len,乒乓球的個數(shù)是N,
    然后搖獎:利用random產(chǎn)生0到N-1的隨機數(shù),
    記作b[0],d[0]=b[0];
    這是搖出的第一個球的號碼,然后對c[len]賦值,
    這個數(shù)組,我規(guī)定它的作用是對剩下的乒乓球標(biāo)記,
    因為搖出了一個球,剩下了N-1個,
    而隨機數(shù)只能在0開始的連續(xù)整數(shù)之間產(chǎn)生,
    所以剩下的球的號碼要是連續(xù)整數(shù)就可以繼續(xù)搖了,
    所以c[len]記錄我對乒乓球的重新標(biāo)號,
    如果最初乒乓球的號碼小于b[0],就保持原來的號碼,
    等于b[0],就讓號碼為N(作廢),
    大于b[0]的,全部減1,
    這樣剩下的N-1個乒乓球的標(biāo)號就是0到N-2了,
    然后產(chǎn)生利用random產(chǎn)生0到N-2的隨機數(shù),
    對標(biāo)記號碼搖獎,利用搖出的乒乓球的標(biāo)記號碼b[1],
    查到它的.真實號碼d[1],
    這樣第二個隨機位置d[1]就產(chǎn)生了,

    然后再根據(jù)b[1]給剩下的N-2個乒乓球重新標(biāo)記,
    如果乒乓球的標(biāo)記號碼小于b[1],就保持原來的標(biāo)記號碼,
    等于b[1],就讓號碼為N(作廢),
    大于b[1]不等于N的,全部減1,
    大于b[1]等于N的,不變。
    重新標(biāo)記之后,產(chǎn)生0到N-3的隨機數(shù),
    就產(chǎn)生了第三個乒乓球的隨機號碼b[2],
    反回去查詢真實號碼,得到d[2];

    ......

    最后我們得到了d[len]這個數(shù)組,
    可以讓c[i]=a[d[i]];
    然后再把c賦給a,
    這樣一個模擬乒乓球搖獎的隨機過程就完成了,
    如果有可能,可以看到a[len]
    打亂后排列的順序,
    和一個一個地?fù)u出乒乓球號碼的概率分布是一致的。

    期待高手點評,^_^.

    【我做的google數(shù)組隨機排序的算法】相關(guān)文章:

    常見的php排序算法11-19

    java排序算法大全08-16

    PHP指定字段的多維數(shù)組排序方法11-16

    java算法字符組合排序08-16

    java五種排序算法匯總09-17

    最全的java隨機數(shù)生成算法08-10

    四種簡單的排序算法的php實現(xiàn)11-18

    常用排序算法之JavaScript實現(xiàn)代碼段10-27

    JavaScript中的索引數(shù)組、關(guān)聯(lián)數(shù)組和靜態(tài)數(shù)組、動態(tài)數(shù)組的分類講11-10

    Javascript的常規(guī)數(shù)組和關(guān)聯(lián)數(shù)組的對比小結(jié)11-17