zoukankan      html  css  js  c++  java
  • JS实现随机数生成算法示例代码

    JS实现随机数生成算法的方法有很多,本文为大家介绍一个比较不错的方法。

    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);
    } www.jbxue.com
    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;
    } 
  • 相关阅读:
    怎样监听HTTP请求的发出与完成
    在Ubuntu下安装source Insight
    Android 5.1 预制输入法
    RK3288编译 Android 5.1 固件
    Android编程之Listener侦听的N种写法及实现原理
    android thread Runnable
    Android Service完全解析(下)
    Android Service完全解析(上)
    android 串口 android-serialport-api
    Android Studio在Ubuntu下离线安装Gradle
  • 原文地址:https://www.cnblogs.com/cfinder010/p/3246196.html
Copyright © 2011-2022 走看看