生成100个随机整数
var intArray=new Array(100); //随机数组 //生成100个随机数 for(var i=0;i<100;i++) intArray[i]=parseInt(Math.random()*100);
这几行代码是在生成100个随机整数。让我详细解释每一部分:
代码逐行解析
var intArray = new Array(100); // 创建一个长度为100的数组
new Array(100)创建一个具有100个空位置的数组相当于:
[empty × 100],数组索引从0到99这是预分配数组空间,提高性能
也可以写成:
var intArray = [];但预分配长度效率更高
//生成100个随机数for(var i=0; i<100; i++)
循环100次,i从0到99
每次循环处理数组的一个位置
intArray[i] = parseInt(Math.random() * 100);
这是最核心的一行,让我们分解来看:
1. Math.random()
生成一个0到1之间的随机小数
范围:[0, 1),包含0,不包含1
例如:0.123、0.567、0.999等
2. Math.random() * 100
将随机小数放大100倍
范围:[0, 100),包含0,不包含100
例如:
0.123 × 100 = 12.3
0.567 × 100 = 56.7
0.999 × 100 = 99.9
3. parseInt(...)
将小数转换为整数(直接截断,不四舍五入)
例如:
parseInt(12.3) = 12
parseInt(56.7) = 56
parseInt(99.9) = 99
parseInt(0.1) = 0
4. 完整赋值
intArray[i] = 生成的随机整数;
生成的随机数示例
// 假设Math.random()生成的随机值: Math.random() = 0.123 → 0.123×100 = 12.3 → parseInt = 12 Math.random() = 0.567 → 0.567×100 = 56.7 → parseInt = 56 Math.random() = 0.001 → 0.001×100 = 0.1 → parseInt = 0 Math.random() = 0.999 → 0.999×100 = 99.9 → parseInt = 99 // 最终数组可能像这样: intArray = [12, 56, 0, 99, 45, 67, 23, 89, 34, 78, ...]
数值分布范围
这段代码生成的随机数范围是0-99的整数:
最小值:0(当Math.random() < 0.01时)
最大值:99(当Math.random() ≥ 0.99时)
不包括100
为什么这样写?
简单高效:一行代码完成随机数生成
整数范围:适合作为后续筛选的样本数据
均匀分布:Math.random()生成的随机数近似均匀分布
预分配数组:提前确定数组大小,避免动态扩容
完整的数组生成过程
// 初始化空数组 intArray = [empty × 100] // 循环填充 i=0: intArray[0] = parseInt(Math.random()*100) // 例如 45 i=1: intArray[1] = parseInt(Math.random()*100) // 例如 67 i=2: intArray[2] = parseInt(Math.random()*100) // 例如 23 ... i=99: intArray[99] = parseInt(Math.random()*100) // 例如 89 // 最终 intArray = [45, 67, 23, 89, 12, 56, 78, 34, 90, 11, ...]
可能的变体
如果要生成不同范围的随机数:
// 0-999的随机数 parseInt(Math.random() * 1000) // 1-100的随机数(包含1和100) parseInt(Math.random() * 100) + 1 // 50-150的随机数 parseInt(Math.random() * 101) + 50
这些随机数将作为后续Worker线程筛选5的倍数的原始数据。