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循环的瞬间产生的随机数重复率很高

  • 相关阅读:
    JQuery
    CSS
    函数装饰器
    函数
    模块和运算符
    前端编程基础
    MySQL优化指南-大表优化思路
    Linux命令find讲解
    LeetCode每日题解(0324)
    Kmeans算法的经典优化——mini-batch和Kmeans++
  • 原文地址:https://www.cnblogs.com/whcghost/p/6695011.html
Copyright © 2011-2022 走看看