JS实现随机数生成算法示例代码


Posted in Javascript onAugust 08, 2013

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; 
}
Javascript 相关文章推荐
jquery利用ajax调用后台方法实例
Aug 23 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 25 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
基于JavaScript实现跳转提示页面
Sep 24 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
vue3实现v-model原理详解
Oct 09 Javascript
判断是否安装flash player及当前版本的JS代码
Aug 08 #Javascript
js 为label标签和div标签赋值的方法
Aug 08 #Javascript
JS模拟自动点击的简单实例
Aug 08 #Javascript
动态改变div的z-index属性的简单实例
Aug 08 #Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 #Javascript
JS+css 图片自动缩放自适应大小
Aug 08 #Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 #Javascript
You might like
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python随机模块random使用方法详解
2020/02/14 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
土建资料员岗位职责
2014/01/04 职场文书
关于旷工的检讨书
2014/02/02 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
接待员岗位职责范本
2015/04/15 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
python 爬取天气网卫星图片
2021/06/07 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
delete in子查询不走索引问题分析
2022/07/07 MySQL