解决方案 »
- 请高手看下 我这段JS哪错了?
- 新手关于正则表达式匹配的一个问题
- JSP分页显示的问题
- position是absolute的DIV怎么测之间的距离?DIV是活动的!多个!
- ****能不能 上传图片转换格式 和 大小呢*****???
- javascript传递变量
- 使用window.open()方法时如何在父窗口中设置窗口内属性的值?谢谢!
- 在框架中 怎么才能点击左边框架(left)中的网址 在右面的框架(right)中显示相关的页面?????
- 一个处理帧的问题,一定给分!!!
- 怎么用js来判断当前打开页面是新开的还是在原来页面上的?
- 超链接 鼠标移入 出现div 鼠标移除 div消失
- 事件中怎么访问外部的变量呢?百度了一夜都没解决……
return Math.ceil(Math.random()*number);
};
rnd.seed=rnd.today.getTime();
这个获取当前时间的时间戳,这个对每一台电脑来说,都是唯一的。rnd.seed = (rnd.seed*9301+49297) % 233280;
这个是用来求余数的,至于为何加这几个数字,还真是不知道,感觉随便加些数字都可以吧。
这个最好获取的结果,就是一个大于等于1,小于233280的数字rnd.seed/(233280.0),这个就是把前面获取的数字,变成0-1之间的数字,仿效Math.random()的返回结果,Math.random()虽然也是返回随机数,不过,有可能重复,使得随机数不唯一,用时间戳来确定,就会大大缩小这个可能性。至少,对一台电脑,时间戳肯定是唯一的。
Math.random()虽然也是返回随机数,不过,有可能重复,使得随机数不唯一。
这句话可不是那么轻易就可以得出的,如上的求余法也不见得就随机了,时间戳是唯一,时间戳求余就不能保证唯一了,还有seed只是在第一次取时间的,以后每次调用rnd只是加一个数求余而已,所以“用时间戳来确定,就会大大缩小这个可能性”也是不成立的。况且随机数为什么非得保证唯一性?
Math.random()虽然也是返回随机数,不过,有可能重复,使得随机数不唯一。
这句话可不是那么轻易就可以得出的,如上的求余法也不见得就随机了,时间戳是唯一,时间戳求余就不能保证唯一了,还有seed只是在第一次取时间的,以后每次调用rnd只是加一个数求余而已,所以“用时间戳来确定,就会大大缩小这个可能性”也是不成立的。况且随机数为什么非得保证唯一性?仔细的想了一下,你说的是对了,这样看来,这段代码,确实是没啥用的。
不知能帮忙找个链接吗?谢谢
楼主,rnd是咱们自己定义的函数,不是内置函数,函数可以看成高级语言的类,类有方法和属性,seed和today就是rnd自己定义的属性,你也可以换成别的,建议读读《javascript面向对象编程》了解一下js中面向对象的概念原理