• PHP内置函数不重复随机数 

         

    需求:要生成一个数组,这个数组里面有10个元素,都是整形,并且是1-60之间不重复的随机数。 

    代码:

    代码示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php   
    function get_randoms($min,$max,$num){  
           $count = 0;  
           $res array();  
           while($count<$num){  
        $res[] = mt_random($min,$max);  
        $res array_flip(array_flip($res));   
        $count count($res);  
            }  
            return $res;  
     }  
        
    $result = get_randoms(1,60,10);  
    ?> 

    在这里 他用$count 结果数组的个数,他在while 循环中 使得结果数组的个数小于 目标个数。通过这样,获取到$count 是 目标个数 的一个数组。

    期间,每一个循环中,通过mt_random($min,$max),随机出区间内的一个值,存放到数组$res中,然后通过两次key-value 交换,也就是通过数组key的唯一性,使得做到不重复。

    我看了这个逻辑的代码之后,我不禁陷入了深思,假如说当你不知道array_filp 函数的时候你怎么做? 

    说白了就是用key的唯一性,使得随机数不会存在重复。那么我们能不能将这个问题简单化处理呢?

    代码示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php   
    function get_randoms($min,$max,$num){  
       $count = 0;  
       $res array();  
       while($count<$num){  
       $key = mt_random($min,$max);  
       $res[$key] = $key;  
       $count count($res);  
           }  
           return $res;  
    }  
    $result = get_randoms(1,60,10);  
    ?>  

    这样完全是单独的通过数组key的唯一性  解决了这个问题。根本就不会用到array_flip。

    总结: 

    1,因为php提供了大量的内置函数,他们的执行效率都很高。在遇到问题的时候,尽可能去用它去解决问题。这样方便而且快速。

    2,php 提供了大量的内置函数,执行效率也很高,但是,虽然效率高,还是需要时间去执行的。

    在遇到问题的时候,不要盲目的去做,可以先看清处理方法的本质,以便于巧妙的实现他。

PHP中生产不重复随机数的方法的更多相关文章

  1. PHP:产生不重复随机数的方法

    来源:http://www.ido321.com/1217.html 无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道, ...

  2. JAVA中生成指定位数随机数的方法总结

    JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...

  3. PHP生成不重复随机数的方法

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

  4. JS判断数组中是否有重复元素的方法

    判断数组中是否有重复元素,最容易想到的方法是使用2重循环,逐个遍历,比较,但是这个是最慢,最笨的方法,百度得出了更好的方法. var ary = new Array("111",& ...

  5. C#生成不重复随机数的方法

    在使用Random类生成随机数时,我们可能会碰到生成随机数重复的问题. 比如我们要生成6位数字验证码,虽然也是使用Random,但是可能出现111111,999999这样的情况. 这是因为在实例化Ra ...

  6. iOS-objective-c产生随机数的方法

    objective-c 中三种产生随机数的方法 //arc4random() 比较精确不需要生成随即种子 //通过arc4random() 获取0到x-1之间的整数的代码如下:     int val ...

  7. 使用C++生成1-33中的6个随机数,无重复

    生成1-33中的6个随机数,无重复 ------------------------------------------------------------------------   方法1.每生成 ...

  8. PHP产生不重复随机数的5个方法总结

    无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地.在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下 无论是We ...

  9. JS数组常用函数以及查找数组中是否有重复元素的三种常用方法

    阅读目录: DS01:常用的查找数组中是否有重复元素的三种方法 DS02:常用的JS函数集锦 DS01.常用的查找数组中是否有重复元素的三种方法  1. var ary = new Array(&qu ...

随机推荐

  1. UnicodeDecodeError: 'ascii' codec can't decode byte

    这个问题遇到过很多次了,但是每次都没记住,用完就忘了,这次记录下. 通过关键词谷歌一下: 解决方案: # encoding=utf8 import sys reload(sys) sys.setdef ...

  2. Perl处理数据(二):tr和y///

    tr和y///是等价的.用来实现一一映射,但也有额外的功能,就像Linux下的tr命令一样. 用法: tr/SEARCH/REPLACEMENT/cdsr y/SEARCH/REPLACEMENT/c ...

  3. Go基础系列:函数(1)

    Go中函数特性简介 对Go中的函数特性做一个总结.懂则看,不懂则算. Go中有3种函数:普通函数.匿名函数(没有名称的函数).方法(定义在struct上的函数). Go编译时不在乎函数的定义位置,但建 ...

  4. 基于SSM框架贺州学院校园二手交易平台设计与实现

    前言 这个是我当时的毕业论文,分享出来,给同学们参考. 绪论 随着中国新四大发明的诞生,网购成了千千万万网友们购物的新方式,新的购物方式促进商业的发展,但随着人们生活水平的提高,许多新购置的物品用了没 ...

  5. Scrapy爬虫(4)爬取豆瓣电影Top250图片

      在用Python的urllib和BeautifulSoup写过了很多爬虫之后,本人决定尝试著名的Python爬虫框架--Scrapy.   本次分享将详细讲述如何利用Scrapy来下载豆瓣电影To ...

  6. 路由器动态DNS设置

    路由器中的动态DNS设置非常的简单,只需要注册动态域名服务商的账号,然后在路由器中登录该账号就可以了 一.路由器动态DNS作用 无线路由器连接宽带上网后,路由器会从宽带运营商那里获取一个IP地址,这个 ...

  7. 【Java每日一题】20170324

    20170323问题解析请点击今日问题下方的“[Java每日一题]20170324”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public cla ...

  8. 史上最全python面试题详解(一)(附带详细答案(关注、持续更新))

    python基础题(53道题详解) 1.简述解释型和编译型编程语言? 概念: 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序.然后,可直接运行这个程序. 解释型语言:把做好的源程序翻译一句 ...

  9. HTML基础总结

    HTML细化知识点总结 1.h1-h6标签 都是标题标签,定义一段话的标题,h1最大,依次递减,h6最小 标题标签的作用:让文本加粗显示 2. 段落标签:p标签 用来显示一段文本(图片),它会忽略源代 ...

  10. 【20190221】HTTP-URI与URL

    URI(uniform resource identifier)统一资源标识符是由某个协议方案表示的资源的定位标识符, URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联网上所处的位 ...