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 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
有效提高JavaScript执行效率的几点知识
Jan 31 Javascript
JS实现很酷的水波文字特效实例
Feb 26 Javascript
js控制网页前进和后退的方法
Jun 08 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
解决layer.confirm选择完之后消息框不消失的问题
Sep 16 Javascript
Vue.Draggable实现交换位置
Apr 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(2)
2006/10/09 PHP
加强版phplib的DB类
2008/03/31 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
初步探究Python程序的执行原理
2015/04/11 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
python导入模块交叉引用的方法
2019/01/19 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
荷兰在线钓鱼商店:Raven
2019/06/26 全球购物
高中生班主任评语
2014/04/25 职场文书
毕业实习感受与体会
2015/05/26 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android