Javascript随机数教程

caixiaojuan86

caixiaojuan86

2016-02-20 01:15

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐Javascript随机数教程,希望大家看完后也有个好心情,快快行动吧!

弄个随机数的东西,直接从网上找了一个现成的,简单看了两眼,感觉算法应该是对的,但今天测试下来,是不对的;

网上大多数人用的写法是这样的:

function getRandomA(rMin,rMax) {
    var range = rMax - rMin;
 var r = rMin + Math.round( Math.random() * range);
    return r;
}

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

用十万的量跑了一下才发现,首位和末位随机的机率不高;

测试一下:

script
//A
function getRandomA(rMin,rMax) {
    var range = rMax - rMin;
 var r = rMin + Math.round( Math.random() * range);
    return r;
}
//test code.
var randArray = new Array();
var testNume = 100000;
for(var y=0; ytestNume; y++){
    var r = getRandomA(0,9);
 if(typeof(randArray[r]) == 'undefined') randArray[r] = 1;
    else randArray[r] = randArray[r] + 1;
}
for(var y=0; yrandArray.length; y++){
 document.write('第一种写法,数字' + y + '共命中:' + randArray[y] + '次' + 'br /');
}
/script

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

从网上找了找发现大家都是这样写的,但这样应该是有问题的。

于是我自已写了一个,简单验证了一下,应该是可以的,很平均。

function getRandom(rMin,rMax) {
 if(rMin == 0) rMax++;
 return Math.floor(rMax*Math.random() + rMin);
}

 HTML代码

script//B
function getRandom(rMin,rMax) {
 if(rMin == 0) rMax++;
 return Math.floor(rMax*Math.random() + rMin);
}
//test code.
var randArray = new Array();
var testNume = 100000;
for(var y=0; ytestNume; y++){
    var r = getRandom(0,9);
 if(typeof(randArray[r]) == 'undefined') randArray[r] = 1;
    else randArray[r] = randArray[r] + 1;
}
for(var y=0; yrandArray.length; y++){
 document.write('我自已的写法,数字' + y + '共命中:' + randArray[y] + '次' + 'br /');
}
/script

在这里记录给自已,这个应该还比较常用,看来大家都在用的东西不一定就靠谱,多质疑一下还是有好处的。

展开更多 50%)
分享

猜你喜欢

Javascript随机数教程

Web开发
Javascript随机数教程

Javascript教程:随机数

Web开发
Javascript教程:随机数

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle 随机数

编程语言 网络编程
Oracle 随机数

随机数算法

编程语言 网络编程
随机数算法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用ASP随机产生随机数

ASP
用ASP随机产生随机数

如何给随机数加密

编程语言 网络编程
如何给随机数加密

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

收集分享的3个讲解css及标签的视频

收集分享的3个讲解css及标签的视频

祖國的花朵

祖國的花朵
下拉加载更多内容 ↓