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 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
关于RequireJS的简单介绍即使用方法
Oct 20 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
Nov 22 Javascript
详解vue2.0 不同屏幕适配及px与rem转换问题
Feb 23 Javascript
element el-input directive数字进行控制
Oct 11 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
JS实现盒子拖拽效果
Feb 06 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 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 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
javascript编程起步(第六课)
2007/02/27 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
python 同时运行多个程序的实例
2019/01/07 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python super函数使用方法详解
2020/02/14 Python
Python 去除字符串中指定字符串
2020/03/05 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
艺术用品:Arteza
2018/11/25 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
本科生就业推荐信
2014/05/19 职场文书
应用外语系自荐信
2014/06/26 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
Python访问Redis的详细操作
2021/06/26 Python
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android