You need to enable JavaScript to run this app. 如何用Julia编写一维随机游走的step(N)函数计算N步后位置
优惠活动
大模型
产品
解决方案
定价
更多

如何用Julia编写一维随机游走的step(N)函数计算N步后位置

我们考虑一维随机游走,步长为+1和-1。
向前或向后移动的概率均为50%(即p = 1/2)

一维随机游走示意图

实现方案

你现有代码的核心问题是没有定义变量累计每一步的位移,也没有按照函数语法封装逻辑,以下是可直接运行的实现:

function step(N)
    # 初始位置设为原点0
    position = 0
    for _ in 1:N
        # rand()生成[0,1)区间均匀分布的随机数,大于0.5的概率为50%,对应向前走
        if rand() > 0.5
            position += 1
        else
            position -= 1
        end
    end
    return position
end

调用方法

直接传入步数参数即可得到最终位置,例如执行step(10)就能得到10步随机游走后的位置。
如果需要保留打印每一步方向的功能,可以使用调整后的版本:

function step(N)
    position = 0
    for _ in 1:N
        if rand() > 0.5
            step_val = 1
            print(1)
        else
            step_val = -1
            print(-1)
        end
        position += step_val
    end
    # 打印完所有步后换行
    println()
    return position
end

注:你原代码中用的randn()是标准正态分布,虽然大于0的概率确实为50%,但用均匀分布rand()更贴合二项概率的场景,代码可读性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 18:45:01