【发布时间】:2014-06-28 20:07:51
【问题描述】:
我需要生成 4 个具有给定范围的不同随机数。像这样:
define('min', 3000);
define('range', 6000);
define('diff', 200);
$array[0] = rand(min ,min + range);
$array[1] = rand(min ,min + range);
while(abs($array[0]-$array[1])<diff)
$array[0] = rand(min ,min + range);
$array[2] = rand(min ,min + range);
while((abs($array[2]-$array[0])<diff)
||(abs($array[2]-$array[1])<diff))
$array[2] = rand(min ,min + range);
$array[3] =rand(min ,min + range);
while((abs($array[3]-$array[0])<diff)
||(abs($array[3]-$array[1])<diff)
||(abs($array[3]-$array[2])<diff))
$array[3] = rand(min ,min + range);
有没有办法优化这个算法?
【问题讨论】:
-
为什么要写这么多代码?
-
这就像“准备好 4 具棺材”吗?
-
你能简单描述一下吗?真正的意义是什么?
-
如果你只需要生成数字,
rand(min ,min + range);四次就够了,但是你添加了很多条件,那么你能解释一下'为什么'吗? -
差异是两个随机数之间的最小差异吗?还是只是一个固定的差异?