神奇的随机数rand()
随机数在统计理论中占有很重要的地位,很多应用都需要用到他,系统自带的rand()函数产生的是伪随机数,所以该如何真正的随机数呢?
1、c语言中的时间函数
关于c语言我查到的两个比较好的博文是:http://blog.sina.com.cn/s/blog_686d0fb001012o3x.html
http://blog.csdn.net/wangluojisuan/article/details/7045592/
里面写的很是详细,但是我想通过一个例子来说明感觉比较好。常用的也就这几个。
char a[];
time_t now;
time(&now); //或者 now = time(NULL);
printf("%s",ctime(&now));//准确的获取电脑时间:Sun Apr 23 13:16:53 2017
time();这个函数其实保存的是一个历史时间,所以需要用NULL把这个历史时间清空一下,time()就会自动保存当前时间了。你可以简单的理解为NULL就是给time()初始化。
然后利用ctime()函数输出固定格式的时间字符串。 2、随机数 c语言自带是随机数是能够产生随机数,但是你每次调用后产生的随机数都是一样的一套随机数。这样就不行了。就像这样:
int i;
for(i = 0;i<5;i++)
{
printf("%d\t",rand());
}
你只要使用上面这个程序,就会得到下面这样的随机数:41,18467,6334,26500,19169,没有例外。
为了解决这个问题,时间函数就来了,时间能揭开一切虚假的东西。 只要在程序的开头加上 srand(time(NULL));
srand函数是随机数发生器的初始化函数。这句话就是把当前时间当成随机数种子。
这样,随机数的种子就被赋值成当前time函数运行的时候的系统时间了,保证了随机性。
还有一个经典的例子:
//产生100个0-1之间的随机数
srand(time(NULL));//产生时间种子
int i,rand_int ;
float rand_float;
for(i = ;i<;i++)
{
rand_int = rand();//产生随机数
rand_float = (float)rand_int/RAND_MAX;
printf("%5.3f\t",rand_float);
}
神奇的随机数rand()的更多相关文章
- 【编程开发】C语言中随机数rand使用注意事项
[编程开发]C语言中随机数rand使用注意事项 标签: [编程开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:随机数在编程开发中非常重要,以C语 ...
- C/C++中产生随机数(rand,srand用法)
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535 ...
- C/C++随机数rand()和种子函数srand()
在计算机编程中,常常要产生一个随机数.但是要让计算机产生一个随机数并不那么容易.计算机的执行,是以代码来进行的,所以并不可能像抽牌,扔骰子那样产生一个真正具有随机意义的数.只可能以一定的算法产生一个伪 ...
- C++随机数rand(), srand()
c++产生随机数会用到rand(), srand()函数,下面总结两个函数特性和使用. 1. rand() #include <iostream> #include <cstdlib ...
- mysql 随机数 rand使用
生成随机数 生成0-3的随机数 SELECT RAND() * 最大不会超过3, SELECT FLOOR(RAND() * ) 上面生成整数的值是0,1,2,3生成的随机整数是1,2,3的话,语句如 ...
- Fruit Ninja(随机数rand())
链接:https://www.nowcoder.com/acm/contest/163/A来源:牛客网 题目描述 Fruit Ninja is a juicy action game enjoyed ...
- C++ 随机数rand()和srand()
标准函数库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h中定义的一个整数,它与系统有关. 例如在我的机器上,RAND_MAX=32767.可以 ...
- C语言中生产随机数 rand()函数
参考资料:C语言中产生随机数 一:如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdl ...
- sql server 生成随机数 rand函数
https://docs.microsoft.com/en-us/sql/t-sql/functions/rand-transact-sql?view=sql-server-2017 在某一个区间内生 ...
随机推荐
- html块状元素、内联元素
html块状元素.内联元素 原文在这 块级元素的分类 块级元素按照其应用于结构还是内容分为三种:结构化块状元素,终端块状元素,多目标块状元素. 一.结构化块状元素 这类元素用于构造文档的结构,一个好的 ...
- 时间操作(struct tm、time_t)求指定日期 前n天的日期
1.在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下: #ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒–取值 ...
- erlang的小知识,未分类。
erlang:module_loaded(module):检测模块是否已加载:
- centos7命令总结
1,查看cpu信息 lscpu 2,网络配置 ip route 查看路由 nmcli nmcli connection show 显示所有连接 nmcli connection show ...
- github前端资源
摘要: 本文将分享我在github上常用的一些插件,可能在开发中你会用到它,希望能够帮助你! 前端技术总结 url : https://github.com/JacksonTian/fks 简述: ...
- Scala 读文件
环境: Cent OS 6.3 以下说明怎样读取一个文件. 代码: $ cat fileRead.scala import scala.io.Source if (args.length > 0 ...
- 超全面的JavaWeb笔记day19<Service>
今日内容 l Service事务 l 客户关系管理系统 Service事务 在Service中使用ThreadLocal来完成事务,为将来学习Spring事务打基础! 1 DAO中的事务 在DAO中处 ...
- Extjs不错的博客
http://www.cnblogs.com/fangsui/category/372751.html http://www.cnblogs.com/WangJinYang/tag/EXT.NET/ ...
- Linux 下安装 Python3
Linux CentOS 7 安装 Python3: [root@localhost ~]$ yum install -y epel-release [root@localhost ~]$ yum i ...
- 最简单的VS-Qt-CMake项目框架
使用qtcreator新建一个空工程,可以得到main.cpp,mainwindow.cpp,mainwindow.h和mainwindow.ui四个文件 下面主要介绍CMakeLists.txt的内 ...