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

RandomWalkers随机游走程序排查:均方距离输出与预期不符

RandomWalkers程序错误排查

错误1:参数获取方式不符合要求

原代码使用Scanner从标准输入读取参数,但题目要求是接收命令行传入的两个整数参数,对应运行示例中java RandomWalkers N T的传参方式,需要从main方法的args数组中解析参数。

错误2:随机方向取值范围错误

Math.random()返回的是[0, 1)区间的随机浮点数,原代码乘以3后得到的范围是[0, 3),强转int后只能得到0、1、2三个值,导致case 3(x减1的方向)永远不会被触发,四个方向的游走概率不均等,结果必然偏离预期。正确应该乘以4,得到[0,4)的范围,强转后刚好覆盖0、1、2、3四个方向值。

修正后的代码

public class RandomWalkers{
    public static void main(String[] args) {
        // 从命令行参数解析N和T
        int N = Integer.parseInt(args[0]);
        int T = Integer.parseInt(args[1]);
        double totalSquaredDist = 0;
        for(int i=0;i<T;i++){
            int x = 0, y = 0;
            for(int j=0;j<N;j++){
                // 生成0-3的随机整数,对应四个方向
                int direction = (int)(Math.random() * 4);
                switch(direction){
                    case 0: y++; break;
                    case 1: x++; break;
                    case 2: y--; break;
                    case 3: x--; break;
                }
            }
            totalSquaredDist += x*x + y*y;
        }
        System.out.println("mean squared distance = "+ totalSquaredDist/T);
    }
}

均方距离结论

大量试验验证可得,二维简单对称随机游走的均方距离和步数N呈线性关系,均方距离 ≈ N,和参考运行示例的结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:04