无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下(ps:方法1、4、5是我常用的,其余来自网络整理)

方法一:

$numbers = range (1,50);

//shuffle 将数组顺序随即打乱

shuffle ($numbers);

//array_slice 取该数组中的某一段

$num=6;

$result = array_slice($numbers,0,$num);

print_r($result);

?>

方法二:

$numbers = range (1,20);

//播下随机数发生器种子,可有可无,测试后对结果没有影响

srand ((float)microtime()*1000000);

shuffle ($numbers);

//跳过list第一个值(保存的是索引)

while (list(, $number) = each ($numbers)) {

echo "$number ";

}

?>

方法三:

function NoRand($begin=0,$end=20,$limit=5){

$rand_array=range($begin,$end);

shuffle($rand_array);//调用现成的数组随机排列函数

return array_slice($rand_array,0,$limit);//截取前$limit个

}

print_r(NoRand());

?>

上述可以在1-20间随机产生5个不重复的值

方法四:

$tmp=array();

while(count($tmp)<5){

$tmp[]=mt_rand(1,20);

$tmp=array_unique($tmp);

}

print_r($tmp);

?>

方法五:

$tmp = range(1,30);

print_r(array_rand($tmp,10));

?>

这个可能是比叫简单的了(ps:如果在range中指定了步长,就必须注意array_rand的第二个参数是否超出$tmp的长度)。

PHP提供非常丰富的数组函数,产生随机数大多可以从数组这个角度出发,若你还有方法提供,欢迎给出,文章将持续更新。

5位随机数重复的概率 php_PHP产生不重复随机数的5个方法总结相关推荐

  1. 5位随机数重复的概率 php_php防止表单重复提交的方法

    Token,就是令牌,最大的特点就是随机性,不可预测. Token一般用在两个地方--防止表单重复提交.anti csrf攻击(跨站点请求伪造). 两者在原理上都是通过session token来实现 ...

  2. 看看Md5自然产生重复的概率

    问题:假设有十万个不同的文件,每个文件对应于一个MD5.这十万个MD5中,存在两个相同的MD5的概率是多大? 答: MD5是128位hash码(4个整数,每个整数4个字节).我们假设它的计算结果是足够 ...

  3. php随机数字不重复,php生成N个不重复的随机数

    php生成N个不重复的随机数 生成N个不重复的随机数,如何在php中实现呢?本文分享的这例php代码,可以实现随机数的'生成,生成多个不重复的随机数,有兴趣的朋友参考下. php生成N个不重复的随机数 ...

  4. c51随机数不重复_怎么让51单片机产生随机数?

    刚写的程序,我的思想是用定时器加rand()随机函数来实现的,单片机上电之后通过按键去启动取随机数,若是单片机上电就立即取随机数的话,那每次上电随机的结果都是一样的.然后是0到9不重复的随机数,程序中 ...

  5. 利用随机数实现指定概率抽奖

    一.随机数与概率的规律 假设我们使用随机数生成器,可以产生1-100范围内随机数. 那么每次产生的随机数,其值可能是1-100范围内任意一个数,每个数的概率均等. 所以可以得出,随机数值V与概率P,有 ...

  6. 随机生成6位数字,且6个数字不重复

    随机生成6位数字,且6个数字不重复 public static int random(){int[] array = {0,1,2,3,4,5,6,7,8,9};Random rand = new R ...

  7. c语言如何产生彩票随机数,随机随机数(彩票概率原理)的详细说明

    java.util.Random是Java中的一个类,可以生成随机数,并且可以通过传入相关参数来控制随机数的范围,无论是在实际开发中还是在学习生活中,随机随机数都可以发挥相对大作用. 所以今天,让我们 ...

  8. 抽奖概率 php_php抽奖概率算法

    /* *算法学习自百度.只是学习和记录 */ header("Content-type:text/html;charset=utf-8"); //1.设置奖项,id是奖项id,na ...

  9. 人工干预随机数中的概率and一些数组的小事

    今天在群里丢了一把脸,起因是因为我在研究js里的随机数,前提是我不知道Math.random()会返回0,但是不会返回1,结果被人笑话了,这里拿出来,希望大家也注意这个基础的问题. 前几天在公交车上挤 ...

最新文章

  1. python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!
  2. Android Support 包里到底有什么
  3. SpringBoot在接受前台参数时提示:Ruquired parameter ‘‘ is not present
  4. real time AI based system questionaires
  5. 大话设计模式—单例模式
  6. JAVA 边界布局管理器
  7. myeclipse问题
  8. 号称最强“抓取”工具,没有搞不到的资源!
  9. Criteo公司在上海新开通一个数据中心
  10. 光纤跳线接口_如何为10G SFP+光模块搭配对应的光纤跳线类型?
  11. Ran 0 tests in 0.000s
  12. circos 可视化手册-plots 篇
  13. 阿里云大数据ACP认证学习笔记
  14. 国际高智商组织门萨的智商测试题-谋杀你的脑细胞
  15. 软考高项 : (14)论信息系统项目的沟通管理
  16. APP开发-第三方SDK使用
  17. 多年心路历程见证从技术小白到收获BAT等大厂研发offer,分享一些经验和感悟
  18. 【测试招聘】资深面试官的测试工程师面试心得
  19. 基于 Android 的合肥市旅游攻略 App的设计与实现
  20. 计算机体检查杀病毒,如何去深度查杀电脑病毒

热门文章

  1. jcmd_程序化JCMD访问
  2. jvm7 jvm8_我们真的仍然需要32位JVM吗?
  3. Java中的代理设计模式
  4. 识别Java中的代码气味
  5. maven和docker_与Maven和Docker的集成测试
  6. 2019年用于自动化的5个最佳Java测试框架
  7. 如何避免Java线程中的死锁?
  8. 如何更改Spring Boot应用程序的默认端口
  9. 选择Java加密算法第2部分–单密钥对称加密
  10. JavaParser中AST节点的观察者