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;
    } 
  • 相关阅读:
    Jenkins(5)生成allure报告
    git 命令
    外连跳转微信
    微信分享接口
    微信接口
    计算php程序运行时间
    数组合并 不覆盖
    LARAVEL 分页
    laravel 随笔
    jq 监听返回事件
  • 原文地址:https://www.cnblogs.com/cfinder010/p/3246196.html
Copyright © 2011-2022 走看看