当前位置: 首页 > news >正文

珠海做网站推广公司他达拉非的副作用和危害

珠海做网站推广公司,他达拉非的副作用和危害,主题资源网站建设步骤,wordpress首页随机推荐前言 我们通常在写一个数据结构后,需要去测试其正确性和性能比较,那在平常手动输入数据的方式太鸡肋,并且不具有普遍性和随机性。基于这个原因,我们必须要掌握设置随机数,不但可以给我们提供更多的数据,还可…

前言

        我们通常在写一个数据结构后,需要去测试其正确性和性能比较,那在平常手动输入数据的方式太鸡肋,并且不具有普遍性和随机性。基于这个原因,我们必须要掌握设置随机数,不但可以给我们提供更多的数据,还可以让数据具有普遍意义,满足我们的测试需求。

一、有关随机数的函数

1. srand

void srand (unsigned int seed);

函数解析: 

        seed就相当于一颗种子,srand函数会种这个随机数种子,种子对应一个随机数,后面使用rand函数可以接收这个随机数。

        经过测试:当我们的种子是固定的,每次程序运行时,rand获得的随机数也是固定的,无法做到在一个程序里获得真正意义的随机数,所以参数通常使用的是time(NULL),time函数是获得系统的时间,因为系统的时间一直在变,那种子就也都是不同的,所以每次程序运行时,rand获得的数,也一直在变,这才是真正意义的随机数。

为什么参数一定时,获得的随机数是固定的?

        首先计算机并不能产生真正的随机数,而是将一些无规则排列的数字存储在电脑里,再把这些数字划分为相等的N份,并为每份加上一个编号。用srand()函数获取这个编号,然后rand()就按顺序获取这些数字。

头文件:

#include <stdlib.h>

参数seed:

推荐使用time(NULL),用时间做参数,可以保证每次程序运行时,生成的随机数是随机的

time函数头文件:#include <time.h>

返回值:

无返回值

2. rand

int rand (void);

头文件:

#include <stdlib.h>

函数解析:

        得到srand生成的随机数,并返回这个随机数

返回值:

        返回的是随机数,范围0~RAND_MAX(RAND_MAX = 2147483647)

二、测试模版

 int main()
{const size_t N = 10000;unordered_set<int> us;  //容器1set<int> s;             //容器2 vector<int> v;          //使用vector保存插入的数据v.reserve(N);           //防止多次扩容,造成消耗,提前一次预留N个空间srand(time(nullptr));   //种随机数种子,使用time做参数,可以保证每次运行,都是不一样的for (size_t i = 0; i < N; ++i){v.push_back(rand()); // N比较大时,重复值比较多//v.push_back(rand()+i); // 重复值相对少//v.push_back(i); // 没有重复,有序}//测试容器插入的性能size_t begin1 = clock();for (auto& e : v){s.insert(e);}size_t end1 = clock();cout << "set insert:" << end1 - begin1 << endl;size_t begin2 = clock();for (auto& e : v){us.insert(e);}size_t end2 = clock();cout << "unordered_set insert:" << end2 - begin2 << endl;//测试容器查找的性能size_t begin3 = clock();for (auto& e : v){s.find(e);}size_t end3 = clock();cout << "set find:" << end3 - begin3 << endl;size_t begin4 = clock();for (auto& e : v){us.find(e);}size_t end4 = clock();cout << "unordered_set find:" << end4 - begin4 << endl << endl;cout <<"插入数据个数:"<< s.size() << endl;cout <<"插入数据个数:" << us.size() << endl << endl;//测试容器删除的性能size_t begin5 = clock();for (auto& e : v){s.erase(e);}size_t end5 = clock();cout << "set erase:" << end5 - begin5 << endl;size_t begin6 = clock();for (auto e : v){us.erase(e);}size_t end6 = clock();cout << "unordered_set erase:" << end6 - begin6 << endl << endl;return 0;
}

三、反思与总结

        由于目前能力不足,还需要仔细研究源码中srand和rand的底层实现,在未来某段时间会更新剖析源码实现
random.c source code [glibc/stdlib/random.c] - Codebrowser

http://www.dt0577.cn/news/47615.html

相关文章:

  • 网上买保险网站中国互联网公司排名
  • 制作网站的公司哪家比较好产品推广网站哪个好
  • 网站seo方案设计谷歌搜索引擎入口手机版
  • 为某公司或企业做的门户网站如何用html制作一个网页
  • 做信息网站要办icp证吗好搜seo软件
  • 网站你的后台管理系统用什么做代运营电商公司
  • 羊肉口报关做网站福州seo关键字推广
  • 自己搭建一个网站需要多少钱?宁波seo推广联系方法
  • 代做预算网站怀柔网站整站优化公司
  • 布吉建网站福州网站建设团队
  • 17做网店网站网站没有友情链接
  • 网站语音转写怎么做seo怎么做优化计划
  • 易奇秀网站友好链接
  • 网站排名权重怎么做网站排名优化首页
  • 如何做适合手机访问的网站最全的搜索引擎
  • 京东门户网站怎么做下载百度app最新版
  • 如何计算网站pv网络营销顾问
  • 做网站图片大小app宣传推广方案
  • 东莞网站推广排行百度推销广告一年多少钱
  • 太原网站公司哪家好湖南seo优化首选
  • 网站改版会影响排名吗怎么优化网络
  • 企业网站流程b2b平台推广网站
  • 深圳极速网站建设报价aso优化方案
  • 做珠宝商城网站下载百度浏览器
  • 深圳商城网站建设百度百度一下你就知道
  • 青岛建设银行股份有限公司网站首页宁德seo
  • 网站的组织与风格设计h5下一页
  • 双拥网站建设申请百度免费下载安装
  • 做网站公司在丹麦补肾壮阳吃什么药效果好
  • 苏州专业高端网站建设公司百度官方网站入口