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 相关文章推荐
JS获取页面input控件中所有text控件并追加样式属性
Feb 25 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
Dec 03 Javascript
jQuery绑定事件on()与弹窗的简要概述
Apr 27 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 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新手上路(七)
2006/10/09 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
prototype1.4中文手册
2006/09/22 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
js快速排序的实现代码
2013/12/08 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python饼状图的绘制实例
2019/01/15 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
护士实习自我鉴定
2013/10/22 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
经典演讲稿开场白
2014/08/25 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
护士年终个人总结
2015/02/13 职场文书
大学生求职自荐信
2015/03/24 职场文书
就业意向书范本
2015/05/11 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技