1:
var MT = [];
var 인덱스 = 0;
함수 초기화_제너레이터(시드) {
MT[0] = 시드;
for (var i = 1; 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 y ^= ((y y ^= (y>18);
인덱스 = (인덱스 1) % 624;
y를 반환합니다.
}
function mt_rand(min, max) {
return extract_number() % (max - min 1) min;
}
function test() {
initialize_generator(new Date().getTime());
var 테스트 = [0, 0];
for (var i = 0; i test[mt_rand(0, 1)] ;
}
반품 테스트;
}
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;
라를 돌려주세요;
}