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 相关文章推荐
popdiv
Jul 14 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
js propertychange和oninput事件
Sep 28 Javascript
JavaScript中实现继承的三种方式和实例
Jan 29 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
微信小程序开发之map地图实现教程
Jun 08 Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
vue2.5.2使用http请求获取静态json数据的实例代码
Feb 27 Javascript
深入浅析JS中的严格模式
Jun 04 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
vue之封装多个组件调用同一接口的案例
Aug 11 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选择排序法实现数组排序实例分析
2015/02/16 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
vue车牌号校验和银行校验实战
2019/01/23 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
python用来获得图片exif信息的库实例分析
2015/03/16 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
StubHub德国:购买和出售门票
2017/09/06 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
我的求职择业计划书
2014/04/04 职场文书
给校长的建议书100字
2014/05/16 职场文书
基层党员对照检查材料
2014/08/25 职场文书
大学毕业生自我评价
2015/03/02 职场文书
被告答辩状范文
2015/05/22 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
数据设计之权限的实现
2022/08/05 MySQL