生成具有受限数字的随机值

时间:2016-07-01 22:51:22

标签: php random

生成具有一组有限数字的随机整数的最佳方法是什么?

我想生成一个4位数的随机数,其中每个数字都在[1..6]范围内。我想在[0..1295]范围内生成一个数字,然后转换为基数6并递增数字,但这会通过一个字符串。

3 个答案:

答案 0 :(得分:2)

没有字符串转换,只有一次调用随机数生成器,你可以这样做:

function myRandom() {
    $num = mt_rand(0, 1295);
    $result = 0;
    for ($i = 0; $i < 4; $i++) {
        $result = $result*10 + $num % 6;
        $num = floor($num / 6);
    }
    return $result + 1111;
}

答案 1 :(得分:1)

你可以像这样单独生成每个数字:

<%= "#{city} (#{count})" %> 

或者如果不首选使用字符串,则可以使用数学:

$result = '';
for ($i=0; $i < 4; $i++) { 
    $result .= mt_rand(1, 6);
}
$result = (int) $result;

答案 2 :(得分:0)

<?php
//  216_10 = 1000_6
// 1295_10 = 5555_6
base_convert(mt_rand(216,1295),10,6);