生成一个元素服从 0 到 5 均匀分布的随机数组,求好思路

2015-06-01 20:34:51 +08:00
 Static2015
2325 次点击
所在节点    问与答
5 条回复
feiyuanqiu
2015-06-01 20:43:55 +08:00
Math.round(Math.random()*5)
feiyuanqiu
2015-06-01 21:15:25 +08:00
啊不对,不能四舍五入,这样 0 和 5 的比例只有 0.5
应该这样:

function gen(n) {
var arr = [];
for (var i = 0; i < n; i++)
arr.push(Math.floor(Math.random()*6));
return arr;
}

function stat(arr) {
var stat = {};
arr.every(function (v) {
if (!stat[v]) stat[v] = 0;
return ++stat[v];
});
return stat;
}

stat(gen(1000));
Septembers
2015-06-02 01:02:41 +08:00
nilennoct
2015-06-02 09:55:50 +08:00
@feiyuanqiu
`var stat = [];`
然后为什么用的every?不用forEach?或者其实可以直接 return arr.map(function() {…}) 吧 囧
nilennoct
2015-06-02 09:59:22 +08:00
@feiyuanqiu 哦没发现stat()其实是统计函数😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/195374

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX