简明现代魔法 -> JavaScript -> JavaScript生成随机数

JavaScript生成随机数

2010-10-15

实现随机数是各种编程语言都很常见的一个编程任务,下面介绍一下在JavaScript如何实现随机数。第一中方法通过重写Math.random方法实现,第二种方法改自一个C实现,都可以实现编程目的。

直接上代码:

    
<script language="javascript">    
var native_random = Math.random;
Math.random = function(min, max, exact) {
	if (arguments.length === 0) 
	{
		return native_random();
	} 
	else if (arguments.length === 1) 
	{
		max = min;
		min = 0;
	}
	var range = min + (native_random()*(max - min));
	return exact === void(0) ? Math.round(range) : range.toFixed(exact);
};

document.write(Math.random());
document.write('<br />');
document.write(Math.random(10));
document.write('<br />');
document.write(Math.random(3,10));
document.write('<br />');
document.write(Math.random(2,10,4));
</script>

程序运行结果如下:

0.2989420900121331
7
9
2.2469

如何不使用Math.random实现随机数呢?下面的函数改自一个C实现:

// The idea of random mehtod is taken from
// http://ianbullard.squarespace.com/journal/2009/4/28/why-you-should-never-use-rand.html
      var random = (function(){
        var high = 1, low = 1 ^ 0x49616E42;
        var shuffle = function(seed){
          high = seed;
          low = seed ^ 0x49616E42;
        }
        return function(){
          var a = new Date()-0
          shuffle(a);
          high = (high << 16) + (high >> 16);
          high += low;
          low += high;
          return high;
        }
      })();
 
      p(random());

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们