實現隨機數是各種程式設計語言都很常見的一個編程任務,下面介紹一下在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.2989420900121331792.2469
如何不使用Math.random實現隨機數呢?下面的函數改自一個C實現:
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()); <script type="text/javascript">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; }})(); alert( random() );</script>