新微赢技术网
标题:
谁知道随机函数头
[打印本页]
作者:
新时代
时间:
2009-11-4 00:27
标题:
谁知道随机函数头
谁知道随机函数头 是什么? 函数是什么?什么参数?
和C 中间的 一样么?
作者:
晒月亮的蜻蜓
时间:
2009-11-4 00:27
take a look there:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_CRT_rand.asp
请注意, 对于标准的C++, 请你将其中的头文件改为
#include <cstdlib>#include <cstdio>#include <ctime>如果你要用到 cin, cout, 那么加上#include <iostream>并且最后加上using namespace std;
作者:
玲珑之翼
时间:
2009-11-4 00:27
哈哈,老狼``,我来转一篇.
#include<time.h>
#include<stdlib.h>
srand((unsigned int)time(NULL));
int n = rand() % 101;
解释:
C++/C语言里,是没有办法得到一个真正的随机数序列的。想要得到一个真正的随机数序列,必须使用特定的随机数硬件发生器。也就是说,软件是没有办法产生真正的随机数。因为软件必须按照一定的逻辑来编写。既然是按照特定的逻辑(也就是算法)来编写,那么产生的运算结果就是一定的。这一点,就是软件天生的特性。想想看,如果一个软件,同样的代码喝条件下,每次运行的结果不一样,那还有谁会用?
所以,在C++/C语言中,就有了“伪随机数”的概念。意思也就是说,通过一个特定的算法,产生一个假的随机数序列。那么,程序员又希望这个随机数序列跟接近真正的随机数序列,也就是希望每次得到的序列的不一样,所有有了一个“播种”的概念。
srand( unsigned int seed );
这个函数就是用来“播种”的。通过一个“种子”(seed),来控制随机数的序列不一样。只要种子不一样,那么通过rand()得到的随机数序列就不一样。反过来说,如果“种子”一样,那么通过srand()得到的随机数序列就是一样的。
srand(0);
for( int i = 0; i < 10; i++)
{
cout<<rand()<<' ';
}
你试着将这个程序执行两次,你会发现两次的结果一样。那是因为,一旦“种子”确定了,那么这个随机数序列就确定了。软件天生的“行为可重复性”决定了这一点。
所以,一般在播种的时候,喜欢用一个随机的种子。绝大多数的情况下,会使用当前的时间。这个数字在每次程序运行的时候,都不一样。除非你手动的改系统时间。
复制代码
作者:
べ.べ凡士林
时间:
2009-11-4 00:27
明白了。实际上我在C中。还没有使用过随机这个函数。
只是知道这个函数。没用过,就是不熟悉这个函数的特性。
作者:
一世豪杰
时间:
2009-11-4 00:27
昂`我也是刚刚知道的
作者:
停淼心泪
时间:
2009-11-4 00:27
顶二楼,很有见地
作者:
孤独の浪子
时间:
2009-11-4 00:27
稍微懂了
作者:
寻觅鼠
时间:
2009-11-4 00:27
恍然大悟阿
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2