产生一个随机数,是这个随机数不能为确定好的数;
例子:产生一个0到10的随机数,但是产生的这个随机数不能是6和8;
我的算法是:把6,8放到数组里,产生一个随机数后到数组里查找,如果存在这个随机数,则重新随机,但是我感觉效率太低了,如果6,8所在的数组里的数太多,感觉效率太低了求算法,要求效率高;

解决方案 »

  1.   

    $ar = array(1,2,4,8,9....); //存放你允许出现的数
    shuffle($ar); //打乱数组
    echo $ar[0]; //输出随机数
      

  2.   

    可以用PHP自帶函數來解決:$arr1 = range(0,100);
    $arr2 = array(6,8);
    $result = array_diff($arr1, $arr2);
    print_r($result);
      

  3.   

    沒看清題目,修改下:
    $arr1 = range(0,10);//產生0-10的數字
    shuffle($arr1);//打亂數組
    $arr2 = array(6,8);//要去除的數字
    $result = array_diff($arr1, $arr2);//去除$arr2中的數字
    print_r($result);
    結果:Array ( [0] => 0 [1] => 2 [4] => 9 [5] => 1 [6] => 3 [7] => 4 [8] => 5 [9] => 7 [10] => 10 ) 
      

  4.   

    我觉得这样更合理,效率更高
    $a = array('0','1','2','3','4','5','7','9','10');
    echo $a[rand(0,8)];