【问题标题】:unable to get javascript code output,无法获得 javascript 代码输出,
【发布时间】:2017-09-10 06:47:48
【问题描述】:

问题:

我正在尝试使用 javascript 创建 RNG 随机数生成器,我的目标是让 RNG 使用种子值生成随机数,这几乎不可能预测随机数的模式。

代码从这里开始:


    var digits = 10,
        seed = 9999199999;
    
    function nextRand() {
        var n = (seed * seed).toString();
        while (n.length < digits * 2) {
            n = "0" + n;
        }
        var start = Math.floor(digits / 2),
            end = start + digits;
        seed = parseInt(n.substring(start, end));
        return seed;
    }
    
    function nextRandFloat() {
        return nextRand() / 9999999999;
    }
    for (var i = 0; i < 20; i++) {
        console.log(nextRandFloat());
    }
    var results = [];
    for (var i = 0; i < 100000; i++) {
        var rand = nextRand();
        if (results[rand]) {
            break;
        }
        results[rand] = true;
    }
    console.log(i);

我已经在许多 javascript 编辑器中运行了这段代码,但我没有得到任何输出,谁能解释一下我做错了什么。

【问题讨论】:

  • 请正确格式化您的代码并检查您的浏览器控制台。您收到什么错误消息?
  • 如果您在 Windows 上,请按 CTRL + Shift + C,然后单击控制台,您应该会看到输出。

标签: javascript output


【解决方案1】:

您的代码似乎对我有用

var digits = 10;
var seed = 9999199999;

function nextRand() {
    var n = (seed * seed).toString();
    while (n.length < digits * 2) {
        n = "0" + n;
    }
    var start = Math.floor(digits / 2),
        end = start + digits;
    seed = parseInt(n.substring(start, end));
    return seed;
}

function nextRandFloat() {
    return nextRand() / 9999999999;
}
for (var i = 0; i < 20; i++) {
    console.log(nextRandFloat());
}
var results = [];
for (var i = 0; i < 100000; i++) {
    var rand = nextRand();
    if (results[rand]) {
        break;
    }
    results[rand] = true;
}
console.log(i);

【讨论】:

    【解决方案2】:

    如果您在网页上运行此代码而不将其包含在&lt;script&gt; 标记中,则浏览器将无法执行该脚本。由于这些环境的设计方式,您可以在 Stackoverflow、jsfiddle.net 和 codepen.io 上运行此脚本而无需这些标签。

    此外,您不会在网页上看到任何输出,因为脚本会将输出记录到控制台。如果您使用 Google Chrome,请转到开发人员工具,您可以查看记录了哪些输出。当我检查控制台时,出现了以下输出:

    0.0006200016000620002 0.03844019840384402 0.7648853031764885 0.952689837895269 0.7927047390792705 0.08032330580803233 0.18334546401833454 0.5559169375555917 0.364139937836414 0.789430098778943 0.9880733491988073 0.894320169089432 0.8564680188856468 0.7467227197746723 0.4820116164482012 0.5198344540519835 0.7859565478785957 0.7695029693769503 0.4819761516481976 0.10107111461010711 20570

    注意,您不必总是对脚本标签进行硬编码,您可以使用 JavaScript 或 jQuery 根据 discussion 动态添加它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 2022-01-25
      相关资源
      最近更新 更多