【发布时间】:2013-07-06 15:54:14
【问题描述】:
我用 Javascript 编写了一个显示随机图片的小函数。返回图片编号的实际行如下所示:
num = Math.floor(Math.random() * RNDGALSIZE);
目前 RNDGALSIZE = 72。
但是,我觉得有些图片经常被点击,而有些图片很长时间没有出现,所以我写了一个循环来生成num的次数,并记录num的每个值出现了多少次.结果如下:
2, 1, 2, 1, 1, 3, 1, 2, 2, 2, // num = 0 to 9
2, 1, 0, 1, 0, 2, 2, 1, 0, 1, // num = 10 to 19
1, 2, 0, 1, 0, 0, 1, 1, 2, 1, // num = 20 to 29
1, 0, 1, 2, 0, 2, 1, 0, 0, 0, // num = 30 to 39
2, 2, 3, 3, 0, 1, 1, 1, 0, 3, // num = 40 to 49
2, 1, 2, 1, 3, 2, 3, 2, 1, 1, // num = 50 to 59
2, 1, 1, 0, 0, 2, 2, 1, 0, 1, // num = 60 to 69
3, 1 // num = 70 and 71
如您所见,没有任何值出现超过 3 次,而 16 个值根本没有出现。虽然有些值可能不会出现,但我认为 16 已经太多了。我的方法有什么问题吗?
更新:
稍后:
4, 4, 3, 6, 5, 5, 3, 3, 2, 2,
2, 2, 2, 2, 3, 5, 3, 1, 4, 2,
4, 3, 0, 1, 1, 0, 1, 4, 4, 4,
2, 0, 5, 3, 0, 4, 2, 0, 2, 1,
2, 3, 4, 3, 2, 4, 3, 2, 0, 5,
4, 4, 4, 2, 3, 4, 4, 4, 5, 1,
2, 2, 4, 2, 0, 3, 4, 2, 2, 1,
4, 1,
如您所见,虽然 3 被击中 6 次,但数组中仍有 7 个零:/
【问题讨论】:
-
你确定
RNDGALSIZE是72而不是4? -
如果它在 4 的位置,我将如何让 array[71] 填充 1??
-
@重点是,如果
RNDGALSIZE是 72,你的随机数应该在 0 和 71 之间,现在有 0 和 3 之间的数字,然后是 0 和 4。 -
发布SSCCE。如果问题和你想的一样根本,那应该很容易。
-
@rhavin 很抱歉误解了你的“数组”,现在我明白了。
标签: javascript random