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父窗口控制只弹出一个子窗口
Apr 10 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
May 22 Javascript
网页打开自动最大化的js代码
Aug 22 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
基于JS脚本语言的基础语法详解
Jul 22 Javascript
vue使用技巧及vue项目中遇到的问题
Jun 04 Javascript
JavaScript实现仿Clock ISO时钟
Jun 29 Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 Javascript
HTML+JS实现在线朗读器
Feb 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中的时间处理
2006/10/09 PHP
PHP伪造referer实例代码
2008/09/20 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
Python paramiko模块的使用示例
2018/04/11 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python遍历字典方式就实例详解
2019/12/28 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
环境科学专业个人求职信
2013/09/26 职场文书
护理自荐信
2013/10/22 职场文书
报社实习生自荐信
2014/01/24 职场文书
促销活动方案模板
2014/02/24 职场文书
岗位职责怎么写
2014/03/14 职场文书
租赁协议书范本
2014/04/22 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
Mysql如何查看是否使用到索引
2022/12/24 MySQL