测试rand函数在一定范围内多次随机产生的数的重复率的问题

<?php
$arr = array();
$ig = 0;
for($i=0;$i<100;$i++){
unset($arr);
for($j=0;$j<100;$j++){
if($j==0){
$arr[] = rand(1,10000);
continue;
}

if(in_array(rand(1,10000),$arr))continue;
$arr[] = rand(1,10000);
}
if(count($arr)==100){
$ig++;
}

}
echo ($ig/100*100)."%";

可见1到10000随机生成100次数字,重复的概率很大,所以在没有高并发下一般使用时间戳去产生唯一id,或者使用uniqid()函数

时间: 2024-10-16 04:29:06

测试rand函数在一定范围内多次随机产生的数的重复率的问题的相关文章

关于rand函数

C语言要获得随机数,就要用到rand()函数.关于rand函数要注意以下几点: 1.要包含stdlib.h,rand函数声明在这个函数里. 2.rand()函数返回一个0~RAND_MAX之间的随机数,经测试在VC,GCC中,[0,RAND_MAX],这个随机数是可以是0或RAND_MAX的. 3.rand()产生的是伪随机数,如果不初始化,每次输出都是一样的序列. 4.srand(seed)是初始化函数,seed一般用机器时间. RAND_MAX是跟实现有关的,在VC6里是32767,在GCC

Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数

一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.

php MySQL使用rand函数随机取记录(转)

php MySQL使用rand函数随机取记录 如何在mysql中使用随机数, 如何写一个语句能一下更新几百条MYSQL数据! 需要测试MYSQL数据库,里面有一个上万条数据的数据库,如何写一个PHP文件一下每次更新几百条信息,我都是写一个循环一次更新一条信息,这样我知道用WHILE写就可以了,要是一次更新好比100条数据改如何写呢! 正确答案是:UPDATE cdb_posts SET views = rand(); 顺便给你找了点关于mysql rand函数的实例,如下: 那就在insert

C語言 rand函数 进阶探讨与实现

C语言中随机函数应用 可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过.那么怎么实现C语言中的随机函数呢? 除了random函数,还有一个rand函数,也是一个随机函数,可以产生从0到rand_max的随机数. #include <stdio.h> #include <stdlib.h> int main() { int x; x = rand(); printf("%d

堆(stack) 之 c 和 c++模板实现(空类默认成员函数 初谈引用 内联函数)

//stack 的基本操作 #include <iostream> using namespace std; const int maxn = 3; typedef struct Stack { //NumType num; int num; }Stack; int top = 0;//当前元素位置的上一个元素 Stack stack[maxn]; bool is_empty(); bool is_full(); int pop(); void push(const int &key)

【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】

一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.

MySQL使用rand函数实现随机数[转]

如何写一个语句能一下更新几百条MYSQL数据! 需要测试MYSQL数据库,里面有一个上万条数据的数据库,如何写一个PHP文件一下每次更新几百条信息,我都是写一个循环一次更新一条信息,这样我知道用WHILE写就可以了,要是一次更新好比100条数据改如何写呢! 谢谢 正确答案是:UPDATE cdb_posts  SET  views = rand(); 顺便给你找了点关于mysql rand函数的实例,如下: 那就在insert 命令中,value()里面用rand(),注意字段宽度是否够一直以为

rand函数的实现原理

rand函数的实现原理 rand函数产生的是伪随机数,也就是说它不是一个真实的随机数. 那么伪随机数是怎么实现的呢?原理大概如下: 如果约定:a1=f(seed),an+1=f(an)那你可以行到一个序列:a1,a2,a3...an,那么要制作一个伪随机函数rand,只需要让它每调用一次就返回序列的下一个元素就行. 就相当于第1次调用rand返回a1,第2次返回a2,-,第n次返回an,这样每次调rand都能拿到一个不同的数,只要整个序列的规律不明显,整个函数看起来就是随机的. 现在计算机上的r

numpy rand函数的应用

以后使用rand(), randint()等函数. 随机浮点类型数值 numpy.random.rand() 产生[0,1)内的浮点型随机数 numpy.random.rand(value1) 产生[0,1)内的value1个元素的一维数组,如果是多个数字,就产生相应维度的数组,都是[0,1)内的数字. instance: rand(3), rand(3,4) numpy.random.random() 的使用和rand()一样,他们在不同的模块中,一个在random模块,一个在matlib模块