javascript生成隨機數程式碼例項

antzone發表於2017-03-10

關於隨機數大家都不陌生,應用非常的廣泛,比如驗證碼,抽獎等等,下面是可以生成隨機數的兩段程式碼,和大家分享一下,希望能夠給大家帶來一定的幫助,程式碼如下:

程式碼一:

[JavaScript] 純文字檢視 複製程式碼
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; 
}

程式碼二:

[JavaScript] 純文字檢視 複製程式碼
//t1為下限,t2為上限,t3為需要保留的小數位 
var random=function(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; 
}

相關文章