bug1078871.js (1025B)
1 // Robert Jenkins' 32 bit integer hash function 2 var seed = 100; 3 Math.random = function() { 4 seed = (seed + 0x7ed55d16) + (seed<<12); 5 seed = (seed ^ 0xc761c23c) ^ (seed>>19); 6 seed = (seed + 0x165667b1) + (seed<<5); 7 seed = (seed + 0xd3a2646c) ^ (seed<<9); 8 seed = (seed + 0xfd7046c5) + (seed<<3); 9 seed = (seed ^ 0xb55a4f09) ^ (seed>>16); 10 seed = Math.abs(seed | 0); 11 return seed / 0xffffffff * 2; 12 } 13 14 function tangle(n, m) { 15 function rand(n) { 16 return Math.floor(Math.random() * n); 17 } 18 19 var arr = []; 20 for (var i = 0; i < n; i++) 21 arr[i] = String.fromCharCode(65 + rand(26)); 22 for (var i = 0; i < m; i++) { 23 var j = rand(n); 24 switch (rand(2)) { 25 case 0: { 26 var s = arr[rand(n)]; 27 var b = rand(s.length); 28 var e = b + rand(s.length - b); 29 if (e - b > 1) 30 arr[j] = s.substring(b, e); 31 } 32 break; 33 case 1: { 34 arr[j] = arr[rand(n)] + arr[rand(n)]; 35 } 36 } 37 JSON.stringify(arr[j]); 38 } 39 40 return arr; 41 } 42 43 tangle(10, 500);