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 php关于强制下载文件的代码
Aug 23 Javascript
Javascript笔记一 js以及json基础使用说明
May 22 Javascript
JQuery for与each性能比较分析
May 14 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
理解javascript async的用法
Aug 22 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 Javascript
JS实现滑动插件
Jan 15 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工厂模式
2014/11/25 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
php微信开发之图片回复功能
2018/06/14 PHP
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JS重要知识点小结
2011/11/06 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
canvas轨迹回放功能实现
2017/12/20 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
python如何实现内容写在图片上
2018/03/23 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python实现根据文件格式分类
2019/10/31 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
上海方立数码笔试题
2013/10/18 面试题
大学四年的个人自我评价
2014/01/14 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
普通话演讲稿
2014/09/03 职场文书
先进个人总结范文
2015/02/15 职场文书
学校运动会感想
2015/08/10 职场文书
新手入门Mysql--概念
2021/06/18 MySQL