PHP面试题目

29个成员

随机数生成(福利彩票-双色球)

发表于 2015-12-07 1310 次查看

关于随机数的生成,一次生成7个数字,红色球6个,区间在1-33,不重复,蓝色球1个,区间在1-16,并且本地每次20秒之后才可能再次生成。

请写出一方法,每次能生成双色球结果,并且在20秒内不能重复生成。

结果:

$row = array(
    'red' = array(4,23,15,6,8,7),
    'bule' = array(9),
    );

7回复
  • 2楼 孤云 2015-12-07


      //双色球 规则
      $red = array_slice(range(1,33),1,7);
      shuffle($red);   
      $blue = array(rand(1,16));
      $strRed = serialize($red);
      $strBlue = serialize($blue);
      var_dump($red);
      echo "<br />";
      var_dump($blue);
      echo "<br />";
      
      //创建时后创建 cookie
      $CreatRed = setcookie("red",$strRed,time()+20,"./");
      $CreatBlue = setcookie("blue",$strBlue,time()+20,"./");
      
      //读取Cookie
      $ReadRed = $_COOKIE["red"];
      $ReadBlue = $_COOKIE["blue"];
      var_dump($ReadRed);
      echo "<br />";
      var_dump($ReadBlue);

  • 3楼 祝你好运 2015-12-07

    <?php
    session_start();
       function Lottery(){       
         if((time())<=($_SESSION['time1'])){
            echo "最少要间隔20秒才能生成下一个";
             return;
                  }
          $row=array();
          for ($i=0; $i <6 ; $i++) { 
            $row['red'][$i]=rand(1,33);   
        }
       if (count($row['red']) != count(array_unique($row['red']))) {   
        Lottery();    
          }else{
              $_SESSION['time1']=time()+20;
              $row['bule'][0]=rand(1,16);
             echo "<pre>";
              print_r($row);
              echo "</pre>";
          }
    }
     Lottery();
    ?>

  • 4楼 野人 2015-12-07
    
    <?php   
    session_start();   
    header("Content-Type: text/html;charset=utf-8");
    $randRed =array_slice(range(1,33),1,7);
    shuffle($randRed);
    $randBlue = array(rand(1,16));
    $arr = array($randRed,$randBlue);
    
    $tim = "20";   
    if(isset($_SESSION["post_sep"])){   
    		if(time() - $_SESSION["post_sep"] < $tim){   
    			exit('刷新时间是'.$tim.'秒 @_@!');   
    		}   
    		else{   
    			$_SESSION["post_sep"] = time();   
    			var_dump($arr);
    		}   
    	}else{   
    	$_SESSION["post_sep"] = time();   
    	exit($tim.'秒,还没到呢!');  
    }   
    ?>
    
  • 5楼 井底之蛙 2015-12-07

    <?php
    header("content-type:text/html;charset=utf-8");
    function caipiao(){
      if(!empty($_GET['red_nem']) && !empty($_GET['blue_nem'])){
          $red_num=$_GET['red_nem'];
          $blue_num=$_GET['blue_nem'];
        if(empty($_COOKIE['color'])){
            for($i=0;$i<$red_num;$i++){
             $res_red[]=mt_rand(1,33);
            }
            for($i=0;$i<$blue_num;$i++){
                $res_blue=mt_rand(1,16);
            }
                foreach($res_red as $value){
                echo '<font color="red" size="+5">'.$value.'-</font>';
                }
            echo '</br><font color="blue" size="+6">'.$res_blue.'</font>';
            setcookie("color","qiu",time()+20);
        }else{
            echo "每次操作需要相隔20S</br>";
        }
      }
    }
    ?>
    <html>
    <!DOCTYPE html><head>
    <meta charset="utf-8" />
    <title>无标题文档</title>
    </head>
    <body>
    <form action="test.php" method="get">
    <font size="+3">输入红色球数量:</font><input type="test" name="red_nem"  /><br/>
    <font size="+3">输入蓝色球数量:</font><input type="test" name="blue_nem"  /><br/>
    <input type="submit" value="提交"/><br/>
    <?php
    caipiao();
    ?>
    </form>
    </body>
    </html>

  • 6楼 祝你好运 2015-12-07

    <?php

    session_start();
    header("Content-type: text/html; charset=utf-8");
       function Lottery(){ 

         if(isset($_SESSION['time1'])&&((time())<=($_SESSION['time1']))){
            echo "最少要间隔20秒才能生成下一个"; 

             return;
                  }
          $row=array();
          for ($i=0; $i <6 ; $i++) { 
            $row['red'][$i]=rand(1,33);   
        }
       if (count($row['red']) != count(array_unique($row['red']))) {   
        Lottery();    
          }else{
              $_SESSION['time1']=time()+20;
              $row['bule'][0]=rand(1,16);
             echo "<pre>";
              print_r($row);
              echo "</pre>";


          }
    }
     Lottery();
    ?>

  • 7楼 阿磊 2015-12-07

    一定要交作业,没有借口,session有效期有点忘记了,没时间查资料了,抄了野人的,谢谢!

    小小的逻辑我还是写了下。不知道对不。。。

    <?php
    session_start();
    header('Content-Type:text/html;charset=utf-8');
    $tim = "20";   
    if(isset($_SESSION["post_sep"])){   
            if(time() - $_SESSION["post_sep"] < $tim){   
                exit('刷新时间是'.$tim.'秒 @_@!');   
            }   
            else{   
                $_SESSION["post_sep"] = time();   
                var_dump($arr);
            }   
        }else{   
        $_SESSION["post_sep"] = time();   
        exit($tim.'秒,还没到呢!');  
    }


    $tmp=array();
    for($i=0;$i<6;$i++){
        $red=mt_rand(1,33);
        $blue=mt_rand(1,16);
        $tmp['red'][$i]=$red;
        $tmp['blue'][0]=$blue;
    }
    var_dump($tmp);

     

     

     

  • 8楼 福娃 2015-12-07

    if(!$_COOKIE['ssq']){
         $arrs=array();
         $arr=range(1,33);
         $auto_arr=array_rand($arr,6);
         foreach($auto_arr as $k=>$v){
              $arrs[$k]=$arr[$v];
         }     
       if( $row=array('red'=>$arrs,'blue'=>array_rand(range(1,16),1)) ){
            setcookie("ssq","<p>请20分钟后再次尝试,上次结果为:</p>".var_export($row,true),time()+5);
            var_dump($row);
       }
    }else{
         echo $_COOKIE['ssq'];
    }

发表回复
你还没有登录,请先登录注册

加入我们吧,一起学习QQ群516033298