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 相关文章推荐
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
Dec 28 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
Nov 07 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
Angular4编程之表单响应功能示例
Dec 13 Javascript
Nuxt.js实战详解
Jan 18 Javascript
Vue服务器渲染Nuxt学习笔记
Jan 31 Javascript
vue中axios解决跨域问题和拦截器的使用方法
Mar 07 Javascript
JS实现的字符串数组去重功能小结
Jun 17 Javascript
javascript实现扫雷简易版
Aug 18 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php分页示例代码
2007/03/19 PHP
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
jQuery实现移动端图片上传预览组件的方法分析
2020/05/01 jQuery
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
python enumerate函数的使用方法总结
2017/11/15 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
九年级物理教学反思
2014/01/29 职场文书
美术指导助理求职信
2014/04/20 职场文书
导航工程专业自荐信
2014/09/02 职场文书
迎国庆演讲稿
2014/09/15 职场文书
优秀党员先进材料
2014/12/18 职场文书
2015年采购部工作总结
2015/04/23 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL