首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数来生成至少相差2的随机数。

函数来生成至少相差2的随机数。
EN

Stack Overflow用户
提问于 2013-06-13 07:18:12
回答 2查看 107关注 0票数 0

我希望生成一系列随机数,这些随机数与之前生成的数字至少有2个差异。我认为一个调用自身的简单函数将是一种方法-参见下面的代码……

代码语言:javascript
复制
function getRandomLength($previous){
    $x = rand(1,12);

    if(abs($x - $previous) > 2){
        return $x;
    } else {
        getRandomLength($previous);
    }
}

不管出于什么原因,这并不是我所希望的那样。任何帮助都将不胜感激。

谢谢。

对于那些想知道为什么我想要稍微不同的随机数的人,我正在构建一个平台。我需要切割甲板,我不想让接头排成一行,也不想让它们有任何可感知的模式,因此,我求助于我值得信赖的随机数生成器来帮助解决……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-13 07:22:17

这里有两个问题:

代码语言:javascript
复制
function getRandomLength($previous){
    $x = rand(1,12);

    if(abs($x - $previous) > 2){

第一个问题在这里-当你指的是>= 2时,你使用> 2,例如,如果差异是两个或更多,那么它是好的。

代码语言:javascript
复制
        return $x;
    } else {
        getRandomLength($previous);

第二个问题是-再次调用该方法,但没有返回调用结果,因此该方法的结果将是一个无用的null

此外,您不应该将方法编码为递归的,它应该是迭代的,因为它不需要递归逻辑。

代码语言:javascript
复制
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-06-13 07:20:13

由于您需要至少2的偏移量,因此从0开始选取一个随机数,然后在其上加上2。由于它是一个偏移量,您可以将它添加到前一个值中(但我相信您可以弄清楚这一点)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17076959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档