获取递归过程的每个返回值



我想在递归过程中将递归函数的返回值分配给变量。我正在尝试实现递归随机数生成器,我希望在过程停止之前保存过程返回的每个值。不知道怎么做。

function rand(seed, m, inc, mod)
{
if(seed === 0)
return 2;
else
return (m * rand(seed-1, m, inc, m) + inc) % mod;
}

您需要一些bucket来将值存储在.中

function rand(depth, m, inc, mod, bucket=[]) {
let nextStep = 2;
if(depth !== 0) {
nextStep = (m * rand(depth-1, m, inc, m, bucket) + inc) % mod;
}
bucket.push(nextStep);
return bucket;
}
// somewhere else
const generatedRandomValues = rand(a, b, c, d);
const randomValue = generatedRandomValues[-1];

ps。考虑使用中间变量使代码的意图更加清晰(比如讲故事(

最新更新