zoukankan      html  css  js  c++  java
  • php 随机数

    方案1

    <?php 
        $num = range(0,10);//利用range()函数产生一个0到10的数组
        shuffle($num);//利用shuffle()函数将产生的$num数组随机打乱顺序
        for ($i=0; $i < 5; $i++) {//选取数组前5个,即随机 
            echo $num[$i]."&nbsp";
        }
     ?>

    方案2

    function randomkeys1($len=8,$format='NUMBER'){
        $is_abc = $is_numer = 0;
        $password = $tmp ='';
        switch($format){
            case 'ALL':
                $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
                break;
            case 'CHAR':
                $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
                break;
            case 'NUMBER':
                $chars='0123456789';
                break;
            default :
                $chars='0123456789';
                break;
        }
        mt_srand((double)microtime()*1000000*getmypid());
        while(strlen($password)<$len){
            $tmp =substr($chars,(mt_rand()%strlen($chars)),1);
            if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){
                $is_numer = 1;
            }
            if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){
                $is_abc = 1;
            }
            $password.= $tmp;
        }
        if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){
            $password = randomkeys($len,$format);
        }
        return $password;
    }

    两种方案都可以产生随机数

    方案1 在for循环的瞬间产生的随机数重复率很低,测试100个以内无重复

    方案2 在for循环的瞬间产生的随机数重复率很高

  • 相关阅读:
    软件工程 2016.6.28 日报
    软件工程课程总结
    工大助手--项目总结
    工大助手--加权平均分计算
    工大助手--数据查询
    7.5
    7月4日日报
    7.3日报
    6.30日报
    6.29.日报
  • 原文地址:https://www.cnblogs.com/whcghost/p/6695011.html
Copyright © 2011-2022 走看看