您好!欢迎访问家园网-www.jy.wang!

家园网

生成100个随机整数

网络 作者:本站 点击:

生成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

为什么这样写?

  1. 简单高效:一行代码完成随机数生成

  2. 整数范围:适合作为后续筛选的样本数据

  3. 均匀分布:Math.random()生成的随机数近似均匀分布

  4. 预分配数组:提前确定数组大小,避免动态扩容

完整的数组生成过程

// 初始化空数组
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的倍数的原始数据。

标签: