生成具有一组有限数字的随机整数的最佳方法是什么?
我想生成一个4位数的随机数,其中每个数字都在[1..6]范围内。我想在[0..1295]范围内生成一个数字,然后转换为基数6并递增数字,但这会通过一个字符串。
答案 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);