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 相关文章推荐
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
JavaScript获得选中文本内容的方法
Dec 02 Javascript
chrome原生方法之数组
Nov 30 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
Javascript模块化编程详解
Dec 01 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
JavaScript中this详解
Sep 01 Javascript
TinyMCE汉化及本地上传图片功能实例详解
May 31 Javascript
实例讲解JavaScript中的this指向错误解决方法
Jun 13 Javascript
js 博客内容进度插件详解
Feb 19 Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 Javascript
js实现无缝滚动双图切换效果
Jul 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获取文件大小的方法
2014/02/26 PHP
微信access_token的获取开发示例
2015/04/16 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
python中类与对象之间的关系详解
2020/12/16 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
幼儿园保育员辞职信
2014/01/12 职场文书
初中物理教学反思
2014/01/14 职场文书
结婚邀请函范文
2014/01/14 职场文书
xxx同志考察材料
2014/02/07 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
节水倡议书
2015/01/19 职场文书
化工厂员工工作总结
2015/10/15 职场文书