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面试题 可以提前实现下
Jan 05 Javascript
JS隐藏参数post传值实例
Apr 18 Javascript
解决js中window.open弹出的是上次的缓存页面问题
Dec 29 Javascript
简介JavaScript中setUTCSeconds()方法的使用
Jun 12 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
基于JavaScript实现瀑布流效果
Mar 29 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
Nov 04 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 04 Javascript
JavaScript前端面试扁平数据转tree与tree数据扁平化
Jun 14 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
PHP引用(&amp;)各种使用方法实例详解
2014/03/20 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
js资料toString 方法
2007/03/13 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
绿色出行口号
2014/06/18 职场文书
师德师风培训感言
2015/08/03 职场文书