You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中用Math.Random生成二维数组:为每列单独限制数值范围

给二维数组不同列设置不同随机数范围的解决方案

你的问题核心是没有根据列索引区分随机数的生成范围,原代码里不管是第一列(j=0)还是第二列(j=1),都用了相同的Math.random() *5 +1,所以所有列的最大值都是5。只需要在内层循环里根据j的取值,给不同列设置不同的随机范围即可。

修改后的完整代码:

package exercises;

public class TimeTable {
    public static void main(String[] args) {
        int[][] nums = new int[10][2];

        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 2; j++) {
                // 根据列索引判断生成范围
                if (j == 0) {
                    // 第一列:1-5
                    nums[i][j] = (int) (Math.random() * 5 + 1);
                } else {
                    // 第二列:1-10
                    nums[i][j] = (int) (Math.random() * 10 + 1);
                }
            }
        }

        for (int i = 0; i < 10; i++) {
            System.out.println(nums[i][0] + " x " + nums[i][1] + " = ");
        }
    }
}

关键修改说明

  • 利用内层循环的j(列索引)做判断:
    • 当j=0(第一列)时,保持原逻辑*5+1,生成1到5的随机整数
    • 当j=1(第二列)时,改成*10+1,生成1到10的随机整数

修改后的输出示例(随机生成,每次结果不同):

3 x 7 = 
1 x 10 = 
5 x 4 = 
2 x 8 = 
5 x 3 = 
1 x 6 = 
5 x 1 = 
2 x 9 = 
3 x 5 = 
5 x 2 = 

这样就能满足第一列最大5,第二列最大10的需求,适合孩子针对性练习乘法。

内容的提问来源于stack exchange,提问作者Erhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:52:37