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 04 Javascript
js 单引号 传递方法
Jun 22 Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
AngularJS入门教程之ng-checked 指令详解
Aug 01 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
详谈js模块化规范
Jul 07 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
node.js域名解析实现方法详解
Nov 05 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
php数组指针操作详解
2017/02/14 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Python字符串详细介绍
2015/05/09 Python
Python3 中文文件读写方法
2018/01/23 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
劳资人员岗位职责
2013/12/19 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
小学中秋节活动方案
2014/02/06 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
小学教师求职信范文
2015/03/20 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
eval(cmd)与eval($cmd)的区别与联系
2021/07/07 PHP