JS 生成随机数的算法简单示例

前端之家收集整理的这篇文章主要介绍了JS 生成随机数的算法简单示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
JS实现随机生成算法的方法有很多,为大家介绍一个比较不错的方法。感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。
经测试代码如下:
  1. /**
  2. * 生成随机
  3. *
  4. * @param
  5. * @arrange (512.笔记) jb51.cc
  6. **/
  7. var MT = [];
  8. var index = 0;
  9. function initialize_generator(seed) {
  10. MT[0] = seed;
  11. for (var i = 1; i < 624; i++) {
  12. MT[i] = 0xffffffff & (0x6c078965 * (MT[i - 1] ^ (MT[i - 1] >> 30)) + i);
  13. }
  14. }
  15. function generate_numbers() {
  16. for (var i = 0; i < 624; i++) {
  17. var y = (MT[i] & 0x80000000) + (MT[(i + 1) % 624] & 0x7fffffff);
  18. MT[i] = MT[(i + 397) % 624] ^ (y >> 1);
  19. if (y % 2 != 0) {
  20. MT[i] ^= 0x9908b0df;
  21. }
  22. }
  23. }
  24. function extract_number() {
  25. if (index == 0) {
  26. generate_numbers();
  27. }
  28. var y = MT[index];
  29. y ^= (y >> 11);
  30. y ^= ((y << 7) & 0x9d2c5680);
  31. y ^= ((y << 15) & 0xefc60000);
  32. y ^= (y >> 18);
  33. index = (index + 1) % 624;
  34. return y;
  35. }
  36. function mt_rand(min,max) {
  37. return extract_number() % (max - min + 1) + min;
  38. }
  39. function test() {
  40. initialize_generator(new Date().getTime());
  41. var test = [0,0];
  42. for (var i = 0; i < 100000; i++) {
  43. test[mt_rand(0,1)]++;
  44. }
  45. return test;
  46. }

2、
  1. /**
  2. * 生成随机
  3. *
  4. * @param
  5. * @arrange (512.笔记) jb51.cc
  6. **/
  7. var random=function(t1,t2,t3){//t1为下限,t2为上限,t3为需要保留的小数位
  8. function isNum(n){
  9. return /^\d+$/.test(n);
  10. } www.jbxue.com
  11. if(!t1 || (! isNum(t1)) ){t1=0;}
  12. if(!t2 || (! isNum(t2)) ){t2=1;}
  13. if(!t3 || (! isNum(t3)) ){t3=0;}
  14. t3 = t3>15?15:t3; // 小数位不能大于15位
  15. var ra = Math.random() * (t2-t1)+t1,du=Math.pow(10,t3);
  16. ra = Math.round(ra * du)/du;
  17. return ra;
  18. }

猜你在找的JavaScript相关文章