Home  >  Article  >  Web Front-end  >  JS implementation of random number generation algorithm sample code_javascript skills

JS implementation of random number generation algorithm sample code_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:26:111110browse

1:

复制代码 代码如下:

var MT = [];
var index = 0;
function initialize_generator(seed) {
MT[0] = seed;
for (var i = 1; i < 624; i ) {
MT[i] = 0xffffffff & (0x6c078965 * (MT[i - 1] ^ (MT[i - 1] >> 30)) i);
}
}
function generate_numbers() {
for (var i = 0; i < 624; i ) {
var y = (MT[i] & 0x80000000) (MT[(i 1) % 624] & 0x7fffffff);
MT[i] = MT[(i 397) % 624] ^ (y >> 1);
if (y % 2 != 0) {
MT[i] ^= 0x9908b0df;
}
}
}
function extract_number() {
if (index == 0) {
generate_numbers();
}
var y = MT[index];
y ^= (y >> 11);
y ^= ((y << 7) & 0x9d2c5680);
y ^= ((y << 15) & 0xefc60000);
y ^= (y >> 18);
index = (index 1) % 624;
return y;
}
function mt_rand(min, max) {
return extract_number() % (max - min 1) min;
}
function test() {
initialize_generator(new Date().getTime());
var test = [0, 0];
for (var i = 0; i < 100000; i ) {
test[mt_rand(0, 1)] ;
}
return test;
}

2:
复制代码 代码如下:

var random=function(t1,t2,t3){//t1为下限,t2为上限,t3为需要保留的小数位
function isNum(n){
return /^d $/.test(n);
}
if(!t1 || (! isNum(t1)) ){t1=0;}
if(!t2 || (! isNum(t2)) ){t2=1;}
if(!t3 || (! isNum(t3)) ){t3=0;}
t3 = t3>15?15:t3; // 小数位不能大于15位
var ra = Math.random() * (t2-t1) t1,du=Math.pow(10,t3);
ra = Math.round(ra * du)/du;
return ra;
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn