Home  >  Q&A  >  body text

php应用中怎样写一个优雅的随机算法

我的应用:随机生成-50到50之间的不包括0的整数,我使用的是mt_rand(-50,50),然后再次判断结果是不是为0,如果为0就重新随机一次,但是这样一点也不优雅,有没有更好的方法?

再进一步,如果要控制生成正负数的比例为4:6,你会怎么做?

怪我咯怪我咯2748 days ago570

reply all(3)I'll reply

  • PHPz

    PHPz2017-04-10 15:52:56

    function my_rand(){
        $num = mt_rand(1, 50); 
        $rand = mt_rand(1, 10);
    
        return $rand > 4 ? $num : -$num;
    }
    

    reply
    0
  • 阿神

    阿神2017-04-10 15:52:56

    1.随机生成一批正数
    2.把这批数字的前60%弄成负的,
    3.打乱顺序,然后按顺序取就行了

    reply
    0
  • PHPz

    PHPz2017-04-10 15:52:56

    谢邀,echo array_rand(array(mt_rand(-50,-1), mt_rand(1,50)));

    reply
    0
  • Cancelreply