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

anthony

使用 random_shuffle() 算法隨機(jī)化序列元素

假設(shè)你需要指定范圍內(nèi)的隨機(jī)數(shù),傳統(tǒng)的方法是使用ANSI C的函數(shù)random(),然后格式化結(jié)果以便結(jié)果是落在指定的范圍內(nèi)。但是,使用這個(gè)方法至少有兩個(gè)缺點(diǎn)。
    首先,做格式化時(shí),結(jié)果常常是扭曲的,所以得不到正確的隨機(jī)數(shù)(如某些數(shù)的出現(xiàn)頻率要高于其它數(shù))
    其次,random()只支持整型數(shù);不能用它來(lái)產(chǎn)生隨機(jī)字符,浮點(diǎn)數(shù),字符串或數(shù)據(jù)庫(kù)中的記錄。
    對(duì)于以上的兩個(gè)問(wèn)題,C++中提供了更好的解決方法,那就是random_shuffle()算法。不要著急,下面我就會(huì)告訴你如何用這種算法來(lái)產(chǎn)生不同類型的隨機(jī)數(shù)。

    產(chǎn)生指定范圍內(nèi)的隨機(jī)元素集的最佳方法是創(chuàng)建一個(gè)順序序列(也就是向量或者內(nèi)置數(shù)組),在這個(gè)順序序列中含有指定范圍的所有值。例如,如何你需要產(chǎn)生100個(gè)0-99之間的數(shù),那么就創(chuàng)建一個(gè)向量并用100個(gè)按升序排列的數(shù)填充向量:
#include <vector>
using std::vector;
int main()
{
vector<int> vi;
for (int i = 0; i < 10; i++)
vi.push_back(i);
/*現(xiàn)在向量包含了 100 個(gè) 0-99 之間的整數(shù)并且按升序排列*/
}
    填充完向量之后,用random_shuffle()算法打亂元素排列順序。random_shuffle()定義在標(biāo)準(zhǔn)的頭文件<algorithm.h>中。因?yàn)?br>所有的STL算法都是在名字空間std::中聲明的,所以你要注意正確地聲明數(shù)據(jù)類型。random_shuffle()有兩個(gè)參數(shù),第一個(gè)參數(shù)是指向序列首元素的迭代器,第二個(gè)參數(shù)則指向序列最后一個(gè)元素的下一個(gè)位置。下列代碼段用random_shuffle()算法打亂了先前填充到向量中的元素:

include <algorithm>
using std::random_shuffle;

random_shuffle(vi.begin(), vi.end()); /* 打亂元素 */

    如果你想檢查被打亂的元素,可以用如下方法看一下他們被打亂后存儲(chǔ)的次序:
for (int i = 0; i < 100; i++)
cout<<vi[i]; /* 顯示被打亂順序的元素 */
    random_shuffle()是個(gè)完全通用的算法-適用于內(nèi)建的數(shù)據(jù)類型和用戶自定義類型。下面的例子創(chuàng)建了一個(gè)有7個(gè)字符串對(duì)象的向量,它包含一周的天數(shù)并使用random_shuffle()打亂他們的排列順序:
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
vector<string> vs;
vs.push_back(string ("Sunday"));
vs.push_back (string ("Monday"));
...
vs.push_back (string ("Saturday"));
random_shuffle(vs.begin(), vs.end()); /* 打亂順序 */
for (int i = 0; i << 7; i++)
cout<<vs[i]; /* 顯示打亂順序后的元素 */
}
如何使用random_shuffle()處理內(nèi)置數(shù)組

    在使用容器代替內(nèi)置數(shù)組時(shí),你不要有什么負(fù)擔(dān)。所有STL算法不僅適用于容器,也適用于序列。因此,你也能將random_shuffle()算法應(yīng)用于內(nèi)置數(shù)組。只是要注意random_shuffle()的第二個(gè)參數(shù)要指向數(shù)組上界的下一個(gè)元素位置:
char carr[4] = {'a', 'b', 'c', 'd'};
/*carr+4 指向數(shù)組上界的下一個(gè)元素位置*/
random_shuffle(carr, carr+4);
for (int i = 0; i < 4; i++)
cout<<carr[i]; /* 顯示被打亂順序的元素 */

posted on 2007-04-13 13:32 anthony 閱讀(3279) 評(píng)論(1)  編輯 收藏 引用

Feedback

# re: 使用 random_shuffle() 算法隨機(jī)化序列元素 2007-04-14 14:30 anthony

還是得用隨機(jī)種子來(lái)設(shè)置隨機(jī)數(shù),否則洗出來(lái)的牌好像還是原先的牌  回復(fù)  更多評(píng)論   



只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


My Links

Blog Stats

常用鏈接

留言簿(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ⅴ| 激情亚洲网站| 国产婷婷色一区二区三区四区| 欧美日韩另类在线| 欧美激情第三页| 欧美日本精品一区二区三区| 欧美国产国产综合| 欧美日韩国产999| 欧美视频在线观看免费网址| 国产精品久久99| 欧美午夜精品一区二区三区| 欧美日韩综合视频网址| 国产精品高潮呻吟久久av无限| 欧美三级黄美女| 国产欧美一区二区色老头| 国产深夜精品| 亚洲国产精品日韩| 在线亚洲免费| 欧美夜福利tv在线| 久久综合网络一区二区| 亚洲第一精品夜夜躁人人爽 | 亚洲性视频网站| 久久精品av麻豆的观看方式| 欧美大片va欧美在线播放| 国产精品国产福利国产秒拍| 国产在线欧美| 亚洲天堂成人在线视频| 久久久久久国产精品一区| 亚洲国产精品久久久久| 亚洲欧美日韩国产综合| 欧美a级一区二区| 国产精品一二| 日韩一区二区福利| 久久理论片午夜琪琪电影网| 欧美日韩精品综合| 久久婷婷国产综合国色天香| 欧美日韩亚洲另类| 激情五月综合色婷婷一区二区| 亚洲午夜一区二区三区| 欧美电影电视剧在线观看| 一个色综合av| 欧美激情黄色片| 亚洲大胆在线| 久久久久久九九九九| 亚洲小说区图片区| 欧美屁股在线| 亚洲精品中文字幕在线| 久热这里只精品99re8久| 亚洲一级电影| 欧美日韩在线视频一区| 91久久中文字幕| 蜜臀久久久99精品久久久久久| 99国产精品视频免费观看| 免费成人美女女| 影音先锋日韩有码| 久久视频在线看| 欧美专区第一页| 国产一级揄自揄精品视频| 午夜精品视频网站| 亚洲视频免费在线观看| 欧美日韩妖精视频| 一级成人国产| 亚洲黄色在线视频| 蜜桃av一区| 亚洲剧情一区二区| 亚洲精品123区| 欧美日韩国产综合久久| 一区二区三区日韩| 一本一本久久a久久精品牛牛影视| 欧美日韩国产成人高清视频| 亚洲视频999| 亚洲男人天堂2024| 国产亚洲精品7777| 免费成人你懂的| 欧美激情乱人伦| 亚洲欧美国产77777| 午夜精品www| 极品尤物久久久av免费看| 欧美成人午夜视频| 欧美精品久久久久久久久老牛影院 | 欧美精品日韩www.p站| 99热这里只有成人精品国产| 亚洲人成网站在线播| 欧美日韩一区二区在线播放| 亚洲午夜精品久久久久久浪潮| 国产精品99久久久久久久vr| 国产亚洲人成网站在线观看| 欧美88av| 欧美日韩一区二区三区在线视频| 午夜宅男久久久| 久久综合久久综合久久综合| 国产精品网站在线| 国产乱码精品一区二区三区av| 性欧美1819sex性高清| 午夜综合激情| 亚洲欧洲午夜| 亚洲一区精品电影| 亚洲国产导航| 亚洲一区二区免费看| 在线看片日韩| 一区二区三区精品国产| 国产亚洲一区二区精品| 亚洲国产精品热久久| 国产日韩精品在线| 最新国产成人在线观看| 国产自产v一区二区三区c| 亚洲另类黄色| 依依成人综合视频| 亚洲无玛一区| 日韩视频在线一区二区三区| 亚洲欧美日韩国产综合精品二区| 亚洲激情电影在线| 欧美一区不卡| 亚洲在线播放电影| 欧美成人精品一区二区| 久久狠狠亚洲综合| 欧美香蕉大胸在线视频观看| 欧美激情网友自拍| 精品动漫一区| 午夜欧美大片免费观看| 亚洲天堂成人在线视频| 欧美国产激情二区三区| 久久在精品线影院精品国产| 国产精品色一区二区三区| 亚洲精品免费一区二区三区| 亚洲风情亚aⅴ在线发布| 欧美一区二区三区精品| 亚洲综合视频网| 欧美日韩在线直播| 亚洲第一网站免费视频| 国内视频精品| 久久xxxx| 老色鬼久久亚洲一区二区| 国产日韩欧美成人| 一区二区三区高清| 一本色道久久综合一区| 久久噜噜噜精品国产亚洲综合| 久久久激情视频| 国内精品久久国产| 久久国产日本精品| 久久精品官网| 激情久久久久久久| 久久久噜噜噜久久人人看| 久久一区视频| 亚洲黄色在线观看| 欧美激情国产日韩| 亚洲免费观看高清完整版在线观看熊| 99re6热只有精品免费观看| 欧美区二区三区| 亚洲色无码播放| 久久国产视频网站| 一区免费观看视频| 免费在线欧美视频| 亚洲美女视频网| 欧美一区二区三区免费大片| 国产色爱av资源综合区| 欧美一区二区免费视频| 久久中文欧美| 一本久久a久久精品亚洲| 亚洲美女一区| 国产精品你懂的在线欣赏| 亚洲视频网在线直播| 亚洲一区久久| 国产一区在线观看视频| 久久精品国产久精国产爱| 蜜臀av性久久久久蜜臀aⅴ| 亚洲人成人77777线观看| 欧美日韩一级片在线观看| 午夜精品亚洲| 欧美成人性网| 亚洲欧美网站| 1024成人网色www| 国产精品www.| 久久福利影视| 亚洲毛片网站| 久久频这里精品99香蕉| 日韩写真在线| 国产自产2019最新不卡| 欧美国产日产韩国视频| 亚洲一区日本| 亚洲激情网站| 久久久国产视频91| 一区二区黄色| 精品不卡一区| 国产精品老女人精品视频| 米奇777在线欧美播放| 亚洲免费影视| 最新国产拍偷乱拍精品 | 久久手机免费观看| 亚洲网在线观看| 亚洲国产日本| 黄色一区二区三区| 国产精品嫩草久久久久| 欧美激情精品久久久久久久变态| 欧美综合国产| 午夜精品久久久久久久久久久久| 亚洲精品乱码久久久久久黑人 | 国产亚洲精品激情久久| 欧美日韩成人在线观看|