c++ 6位唯一随机数 算法 .pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

c++6位唯一随机数算法

C++是一种非常强大且常用的编程语言,用于开发各种类型的应用

程序。在C++中,生成唯一的6位随机数是一个常见的需求。本文将介

绍几种算法,以帮助你生成唯一的6位随机数。

1.线性同余法(LinearCongruentialGenerator,简称LCG)

线性同余法是一种简单而广泛使用的伪随机数生成算法。它的公

式为:X(n+1)=(a*X(n)+c)modm,其中a、c和m是常量,X(n)

是前一个随机数。这种算法的随机数循环周期是m,所以我们可以设置

m为1000000,生成0到999999之间的随机数。下面是一个示例代码:

```cpp

#includeiostream

#includecstdlib

intmain(){

inta=1103515245;//常量a

intc=12345;//常量c

intm=1000000;//常量m

intseed=time(NULL);//以当前时间为种子

for(inti=0;i6;i++){

seed=(a*seed+c)%m;

std::coutseed;

}

return0;

}

```

这段代码使用了time(NULL)函数作为种子,确保每次运行都会生

成不同的随机数序列。

2.Fisher-Yates洗牌算法

Fisher-Yates算法是一种用于生成随机排列的算法。它的思想是

从数组的最后一个元素开始,将它与数组中的一个随机位置的元素交

换,并逐渐向前遍历数组进行交换,直到第一个元素。下面是一个示

例代码:

```cpp

#includeiostream

#includecstdlib

#includectime

voidshuffle(intarr[],intn){

srand((unsigned)time(NULL));

for(inti=n-1;i0;i--){

intj=rand()%(i+1);

std::swap(arr[i],arr[j]);

}

}

intmain(){

intarr[1000000];

for(inti=0;i1000000;i++){

arr[i]=i;

}

shuffle(arr,1000000);

for(inti=0;i6;i++){

std::coutarr[i];

}

return0;

}

```

这段代码首先生成一个包含0到999999的数组,然后使用

shuffle函数将数组随机洗牌。最后,我们可以选择数组的前6个元素

作为随机数序列。

3.使用C++的随机数库

C++提供了一个随机数库random,可以用于生成各种类型的随机数。

下面是一个使用random库生成6位随机数的示例代码:

```cpp

#includeiostream

#includerandom

intmain(){

std::random_devicerd;

std::mt19937gen(rd());

std::uniform_int_distributionintdis(0,999999);

for(inti=0;i6;i++){

std::coutdis(gen);

}

return0;

}

```

这段代码使用了random_device作为种子,mt19937作为随机数引

擎,uniform_int_distribution作为随机数分布。我们通过

文档评论(0)

180****4714 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档