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 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
List the Codec Files on a Computer
Jun 18 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
jquery常用函数与方法汇总
Sep 01 Javascript
jQuery简单设置文本框回车事件的方法
Aug 01 Javascript
AngularJS控制器详解及示例代码
Aug 16 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
Angular6封装http请求的步骤详解
Aug 13 Javascript
在Webpack中用url-loader处理图片和字体的问题
Apr 28 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
判断是否安装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最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
PHP 循环列出目录内容的函数代码
2010/05/26 PHP
PHP浮点数精度问题汇总
2015/05/13 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python标准库之collections包的使用教程
2017/04/27 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
python实现斗地主分牌洗牌
2020/06/22 Python
strlen的几种不同实现方法
2013/05/31 面试题
班长岗位职责
2013/11/10 职场文书
二年级数学教学反思
2014/01/21 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
公关活动策划方案
2014/05/25 职场文书
挂职个人工作总结
2015/03/05 职场文书
行政处罚告知书
2015/07/01 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript