日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

随机系列生成算法(随机数生成)

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 随机系列生成算法(随机数生成) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、問題描述

????????給定一個正整數(shù)n,需要輸出一個長度為n的數(shù)組,數(shù)組元素是隨機(jī)數(shù),范圍為0 – n-1,且元素不能重復(fù)。比如 n = 3 時,需要獲取一個長度為3的數(shù)組,元素范圍為0-2。

2、準(zhǔn)備

??????????首先,讓我們先構(gòu)造如下函數(shù):

[cpp]?view plaincopy
  • //隨機(jī)數(shù)生成函數(shù),生成[a,b]之間的一個隨機(jī)數(shù)字??
  • //其中0<=a<b<=RAND_MAX(即2^15-1=32767)??
  • int?random(int?a,int?b)??
  • {??
  • ????return?a+rand()%(b-a+1);??
  • }??

  • 3、解法一

    ??????????先給序列A[0...n-1]賦值,A[i]=i;(0=<i<n)。然后為每個元素A[i]賦一個優(yōu)先級P[i],然后依據(jù)優(yōu)先級對序列A進(jìn)行排序。這里要保證序列P中沒有相同的元素,所以P[i]的取值范圍可以選[0,(n-1)^3]。這樣就盡可能保證P中元素?zé)o重復(fù)。偽代碼如下:

    [cpp]?view plaincopy
  • n=length[A]??
  • for(i=0;i<n;i++)??
  • ???P[i]=random(0,n^3);??
  • sort?A,using?p?as?sort?keys??
  • ????????? 分析:顯然解法一無法準(zhǔn)確的確保P中元素?zé)o重復(fù),且當(dāng)n較大時,n的三次方會很大,如當(dāng)n=10000時,n的三次方已經(jīng)超出了無符號長整形的表示范圍。該算法時間復(fù)雜度依賴排序時間,且這個排序不好實現(xiàn)。總之,這不是一個很好的隨機(jī)序列生成算法。

    4、解法二

    ????????先給序列A[0...n-1]賦值,A[i]=i;(0=<i<n)。然后原地排列給定序列。代碼如下:

    [cpp]?view plaincopy
  • //產(chǎn)生隨機(jī)序列??
  • void?randomSequence1(int?*a,int?n)??
  • {??
  • ????int?i,r,temp;??
  • ????for(i=0;i<n;i++)??
  • ????????a[i]=i;??
  • ????srand(time(NULL));??
  • ????for(i=0;i<n;i++){??
  • ????????r=random(i,n-1);??
  • ????????//交換??
  • ????????temp=a[i];??
  • ????????a[i]=a[r];??
  • ????????a[r]=temp;??
  • ????}????
  • }??
  • ?????????分析:這個算法的時間復(fù)雜度為o(n)。

    5、解法三

    ????????這是在網(wǎng)上看的一種高效隨機(jī)生成序列算法,詳細(xì)請看原文:http://www.cnblogs.com/eaglet/archive/2011/01/17/1937083.html

    ????????這里給出自己寫的代碼:

    [cpp]?view plaincopy
  • //產(chǎn)生隨機(jī)序列??
  • void?randomSequence2(int?*a,int?n)??
  • {??
  • ????int?i,end,r;??
  • ????int?*q=(int?*)malloc(sizeof(int)*n);??
  • ????for(i=0;i<n;i++)??
  • ????????q[i]=i;??
  • ????srand(time(NULL));??
  • ????end=n-1;??
  • ????for(i=0;i<n;i++){??
  • ????????r=random(0,end);??
  • ????????a[i]=r;??
  • ????????q[r]=q[end];??
  • ????????end--;??
  • ????}????
  • }??
  • 6、附錄


    ??????參考書籍:《算法導(dǎo)論》?????解法三原文:http://www.cnblogs.com/eaglet/archive/2011/01/17/1937083.html

    轉(zhuǎn)載于:https://www.cnblogs.com/tham/p/6827184.html

    總結(jié)

    以上是生活随笔為你收集整理的随机系列生成算法(随机数生成)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 黄色小说在线视频 | 黄色a∨| 日本免费a级片 | 国产a国产 | 天天操天天操天天操天天操 | 国产精品久久综合视频 | 欧美精品第一区 | 成人av不卡| 毛片h | 日产精品久久久久久久 | 一本久道视频一本久道 | 国产黄色一区二区 | 国产古装艳史毛片hd | 日韩欧美国产视频 | 黄色小说图片视频 | 极品女神无套呻吟啪啪 | 亚洲aaa级| 在线观看网站 | 天堂中文字幕免费一区 | 法国极品成人h版 | 亚洲视频一区二区在线观看 | 中文在线最新版天堂 | 欧美性大战久久久 | 91超碰在| 亚洲福利av | www.youjizz日本| 黄色片网站在线观看 | 国产在线精品一区 | 精品久久久无码中文字幕 | 激情av中文字幕 | 毛片网站在线播放 | 精品国产AV色欲天媒传媒 | 亚洲天堂一区二区三区 | 中文字幕无码不卡免费视频 | 麻豆av一区二区三区在线观看 | 四季av中文字幕一区 | 在线视频污 | 国产乡下妇女做爰毛片 | 鬼眼| 伊人久久免费视频 | 午夜啪视频 | 日本人添下边视频免费 | 久本草精品 | 亚洲乱码一区二区 | 国产调教一区 | zzji欧美大片 | 美女交配 | 黄色aaa大片 | 一级黄色在线播放 | 精品成人免费一区二区在线播放 | jizz中国少妇 | 色人阁视频 | 手机在线一区二区三区 | 色狠狠一区二区 | 亚洲国产精品毛片 | 亚洲一区国产 | 亚洲男女av | 天天综合天天综合 | 亚洲色网址 | 亚洲网站免费看 | 四虎永久网站 | 国产精品video | 黄色免费片 | 色狠狠av老熟女 | 欧美一级在线免费观看 | 亚洲最大成人av | 国产制服91一区二区三区制服 | 草草影院欧美 | 欧美亚洲中文精品字幕 | 强乱中文字幕 | 97超碰色| 久久99草| 一区二区精| 国产91精品一区二区绿帽 | 亚洲天堂国产精品 | 在线观看免费高清 | 久久综合丁香 | 日韩欧美国产视频 | a免费视频| 色在线免费视频 | 夫妻啪啪呻吟x一88av | 日本h在线| 99精品视频网站 | 婷婷精品视频 | 天天天天天天干 | 夜夜操网| 91精品国产色综合久久不卡蜜臀 | 国产精品免费无码 | 生活片毛片 | 四川丰满妇女毛片四川话 | 男生草女生视频 | 97国产资源| 97毛片| 99精品久久久久久 | 日日夜夜操av | 久久精品视频7 | 三级无遮挡 | 小仙女av | av三级在线观看 |