Javascript随机正确答案

时间:2016-07-18 10:08:16

标签: javascript random

enter image description here

我想在其他广告位之间随机生成错误的数字。

例如:正确答案是4,但我想让其他老虎机在正确答案之间给出错误的答案。

有人能给我一个实现这个目标的线索吗?提前谢谢你!

抱歉我的英语不好,如果你没有得到我的问题。

    var operators = {
        "signOne": [
            {
                sign: "+",
                method: function(a,b) {return a+b}
            },
            {
                sign: "-",
                method: function(a,b) { return a-b}
            }
        ]};
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length);
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB);

这是我正确答案的输出。

6 个答案:

答案 0 :(得分:1)

你可以:

  • 建立一个包含正确答案,较小的错误答案和更大错误答案的清单
  • 使用自定义随机函数对列表进行排序

代码:

var answer = 9 - 5,
    list = [
      answer,
      answer - 1 - ((Math.random() * 10) | 0),
      answer + 1 + ((Math.random() * 10) | 0)
    ];

list.sort(function(a, b) { return Math.random() - 0.5; });

console.log(list);

示例输出:

[2, 8, 4]

如果需要,列表中正确答案的位置将由list.indexOf(answer);给出。

答案 1 :(得分:0)

您可以计算真实答案calcAnswer(),然后创建一个函数来创建比实际答案calcOtherAnswers()result的随机数,只要answer< dynamic_cast(4或您的情况下的任何内容)然后生成一个数字。

答案 2 :(得分:0)

尝试使用Math.random();函数生成随机数。

<强> HTML

<div id="first"></div>
<div id="second"></div>
<div id="third"></div>

<强> JS

var first = Math.floor((Math.random() * 10) + 1);
var second = Math.floor((Math.random() * 10) + 1);
while( second === first ){
  second = Math.floor((Math.random() * 10) + 1);
}
var third = Math.floor((Math.random() * 10) + 1);
while( third === first || third === second ){
  third = Math.floor((Math.random() * 10) + 1);
}

$("#first").html(first);
$("#second").html(second);
$("#third").html(third);

答案 3 :(得分:0)

我看到你发布了javascript的问题,我发布了一个假设该语言的答案。 从Mozilla的documentation,您可以使用函数选择最大值和最小值。

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}

输入正确的min和max值

答案 4 :(得分:0)

var operators = {
        "signOne": [
            {
                sign: "+",
                method: function(a,b) {return a+b}
            },
            {
                sign: "-",
                method: function(a,b) { return a-b}
            }
        ]};
var selectedOperatorA = Math.floor(Math.random()*operators.signOne.length);
this.hiddenTotalValue = operators.signOne[selectedOperatorA].method(this.valueA, this.valueB);

这是我正确答案的输出。

答案 5 :(得分:0)

执行此操作的一种简单方法是使用数组。你将正确的值推入其中,然后有一个创建随机数的循环,如果它们不在数组中,则添加它们 - 直到数组具有所需的大小/长度。