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

全国火车站等级最新排名京东网站建设的详细策划

全国火车站等级最新排名,京东网站建设的详细策划,wordpress 公众账号,家在深圳 安居公租点击蓝字关注我们一、在C11之前#xff0c;我们通常采用rand函数来生成随机数。有时我们想用rand生成一组随机数#xff0c;即使我们调用了srand#xff0c;但生成的还是相同值。为什么会产生这种情况#xff1f;又该如何解决#xff1f;下面将用第一视角一起探究这其中的… 点击蓝字关注我们一、在C11之前我们通常采用rand函数来生成随机数。有时我们想用rand生成一组随机数即使我们调用了srand但生成的还是相同值。为什么会产生这种情况又该如何解决下面将用第一视角一起探究这其中的奥秘。场景描述想生成一组整形随机数放入数组中用来测试自己的排序是否正确。于是我写出了下方代码生成随机数。先简单了解下用到的函数//返回time_t类型的 当前时间的时间戳 time_t time (time_t* timer);//传入一个种子为伪随机数生成器初始化 void srand (unsigned int seed);//得到一个整形伪随机数 int rand (void);#include stdio.h #include time.h #include stdlib.hint main() {int arr[10] { 0 };for (int i 0; i 10; i){srand((unsigned int)time(NULL));//两个相减是为了出现负的随机数使测试范围更广arr[i] (rand() % 100 1) - (rand() % 100 1);printf(%d , arr[i]);}return 0; }我发现尽管我调用了srand函数可生成的数组值还是同一个。我思考后想到因为for循环执行速度太快整个程序都是在一秒内完成的。所以出现了都是同一个值的情况。初步解决于是我想出了下面的解决方法我可以在for循环内调用Sleep函数让我的电脑休眠一下这样就不会出现上述情况了。于是我写出了下方的代码#include stdio.h #include time.h #include stdlib.h #include windows.hint main() {int arr[10] { 0 };for (int i 0; i 10; i){Sleep(1000);srand((unsigned int)time(NULL));arr[i] (rand() % 100 1) - (rand() % 100 1);printf(%d , arr[i]);}return 0; }通过休眠后就成功解决问题了。可是如果睡眠时间太短那么还是会出现重复的现象如果睡眠时间太长程序运行速度就太慢。最终方法因为上述的原因又详细了解了一下rand和srand的基本原理最终成功解决了该问题。给srand函数传入一个数值后srand会根据这个生成一个随机序列表通常有4,294,967,296个数传入相同的数生成的序列表是相同的。然后rand从序列的头部取出一个数返回然后将这个数放在随机序列表尾部因此如果你要取的数据量非常大是会出现与之前取出的数重复的情况。此时上面出现的问题也很好解决了。因为计算机运行速度很快所以我们每次进入循环都会生成一个相同的随机序列表rand函数只会取出其第一个数。要解决这个问题我们只需要在循环前调用一次srand函数就好了这样就不会重复生成序列表了。下方是最终形式的代码#include stdio.h #include time.h #include stdlib.hint main() {int arr[10] { 0 };srand((unsigned int)time(NULL));for (int i 0; i 10; i){arr[i] (rand() % 100 1) - (rand() % 100 1);printf(%d , arr[i]);}return 0; }但rand函数对一些情况显得难以处理不同范围的随机数需要随机浮点数需要非均匀分布的随机数二、C11定义在头文件random中的随机数库下文将使用C11定义在头文件random中的随机数库通过一组协作的类来解决这些问题随机数引擎类和随机数分布类。一个引擎类可以生成unsigned随机数序列一个分布类使用一个引擎类生成指定类型的、在给定范围内的、服从特定概率分布的随机数1、生成等概率随机数生成随机整数uniform_int_distribution产生均匀分布的整数template class IntType int class uniform_int_distribution;// IntType // An integer type. Aliased as member type result_type. // By default, this is int.#include iostream #include random #include ctime using namespace std;int main() {//产生[1, 100]左闭右闭区间的随机整数uniform_int_distributionint u(1, 100);default_random_engine e;//为随机数引擎设置随机种子若不设置每次生成的随机数相同(可以创建时设置)//类似srand的用法,相同的种子生成的随机数相同//default_random_engine e(time(NULL));e.seed(time(NULL));for (size_t i 0; i 10; i){cout u(e) ;}cout endl;return 0; }生成随机浮点数uniform_real_distribution产生均匀分布的实数template class RealType double class uniform_real_distribution;// RealType // A floating-point type. Aliased as member type result_type. // By default, this is double.#include iostream #include random #include ctime using namespace std;int main() {//生成[-1, 1]范围随机浮点数//模板参数只能是浮点类型floatdouble long doubleuniform_real_distributiondouble u(-1, 1);default_random_engine e(time(NULL));for (size_t i 0; i 10; i){cout u(e) ;}cout endl;return 0; }2、生成非均匀分布随机数正态分布随机数template class RealType double class normal_distribution;#include iostream #include random #include ctime using namespace std;int main() { //生成符合均值为10标准差为2的随机数normal_distributiondouble u(10, 2); default_random_engine e(time(NULL));for (size_t i 1; i 100; i){ printf(%-9.6lf , u(e)); if (i % 10 0){ cout endl;}} cout endl;return 0; }二项分布的布尔值class bernoulli_distribution;#include iostream #include random #include ctime using namespace std;int main() { // 生成1的概率为0.7 bernoulli_distribution u(0.7); default_random_engine e(time(NULL));for (int i 0; i 10; i) { cout u(e) ;} cout endl;return 0; }简单分享快乐学习如有错误请多包涵*声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。戳“阅读原文”我们一起进步
http://www.zqtcl.cn/news/623788/

相关文章:

  • 网站备案多少钱安全网站建设与服务的关系
  • 手机端网页设计尺寸规范优化seo排名
  • 做网站业务提成多少厦门十大装修公司排名榜
  • 为什么用开源建站wordpress rss 插件
  • 语文建设投稿网站南昌做网站的公司多不多
  • 石家庄网站建设的公司功能性质网站
  • 企业网站主页模板装饰公司名字起名大全
  • 马鞍山网站设计价格如何在微信公众号内部做网站
  • 申请网站建设经费的报告生态建设网站
  • 建网站要多少钱用自己的服务器河北工程大学网站开发成本
  • 宁波网站建站公司商务网站模块设计时前台基础设施建设不包括
  • 徐州免费网站制作怎么用阿里云服务器搭建wordpress
  • php猎奇源码 织梦新闻视频图片八卦娱乐趣事资讯门户网站模板html代码表格
  • 南通做网站优化哪家好网页策划书 网站建设定位
  • 防止访问网站文件夹绵阳 网站设计
  • 网页与网站的区别是什么东莞网站公司排名
  • 盐城市城乡和住房建设厅网站wordpress文章订阅
  • 济南网站优化wordpress文件上传到那个文件
  • 外贸网站租用外国服务器好还是自己装一个服务器好高质量外链网站
  • 珠海专门做网站成都到西安
  • 网站做1920px好吗长沙seo优化排名
  • 哈尔滨微信网站开发wordpress 视
  • wordpress 分享封面图片尺寸重庆官网优化乐育公司
  • dede手机网站更新受欢迎的昆明网站建设
  • 网站设计外包合同专做自驾游的网站
  • 网站建设服务预算游戏网站怎么赚钱
  • 怎么做网站关键词视频手机网页前端开发
  • 好网站具备条件网站建设外链
  • 青岛如何建立企业网站企业中国数据域名注册
  • 怎么看网站做的好不好南京h5 网站建设