0

我一直在玩可汗学院网站上的随机数生成器。这是我在控制台中输入的代码。我知道那里没有 ctx 的东西,但代码与使用普通的 HTML 画布非常相似。我试图让画布显示累积频率的条形图,显示随机数生成器选择每个数字的次数。为此,我尝试获取每个数字出现的总次数,然后将其用作图表中每个条形高度的变量。

    var num_1 = 0;
    var num_2 = 0;
    var num_3 = 0;
    var num_4 = 0;
    var num_5 = 0;
    var num_6 = 0;
    var num_7 = 0;
    var num_8 = 0;
    var num_9 = 0;
    var num_10 = 0;

    var draw = function() {      //the draw function just repeats the stuff inside it every second
    var random_num = random(0,10);

    if(random_num === 1){
        num_1 = num_1 + 1;
    }else if(random_num === 2){
        num_2 = num_2 + 1;
    }else if(random_num === 3){
        num_3 = num_3 + 1;
    }else if(random_num === 4){
        num_4 = num_4 + 1;
    }else if(random_num === 5){
        num_5 = num_5 + 1;
    }else if(random_num === 6){
        num_6 = num_6 + 1;
    }else if(random_num === 7){
        num_7 = num_7 + 1;
    }else if(random_num === 8){
        num_8 = num_8 + 1;
    }else if(random_num === 9){
        num_9 = num_9 + 1;
    }else if(random_num === 10){
        num_10 = num_10 + 1;
    }
    fill(122, 116, 116);
    rect(height, width/10, 20, num_1);
    rect(height, width/9, 20, num_2);
    rect(height, width/8, 20, num_3);
    rect(height, width/7, 20, num_4);
    rect(height, width/6, 20, num_5);
    rect(height, width/5, 20, num_6);
    rect(height, width/4, 20, num_7);
    rect(height, width/3, 20, num_8);
    rect(height, width/2, 20, num_9);
    rect(height, width/1, 20, num_10);
 };
4

1 回答 1

0

你的问题很简单。如果随机数完全等于整数,您的 if 语句会做出反应。random 函数选择一个带小数的随机数。有两种非常简单的方法可以解决这个问题。

1) 有

random_num = round(random(0,10));

或者

2) 在 if 语句中使用 > 和 < 符号。例如:
如果您还不知道,请确保以“> 2”开头。

var random_num = random(1, 11)

- 在这里跳过一些代码 -

if (random_num < 2) {(too lazy to copy code in here)}  
else if (random_num < 3) {(again)}  
*ect.*

我个人认为第一个 o 是最简单的。

于 2015-05-04T01:00:03.740 回答