如何用python模拟对称随机游走

img


注意:尽管看起来描述很复杂,但实际上也许大概10行以内的程序你就可以实现上述过程的模拟。回答该问题也可以使用列表而不是用Numpy的数组。


# 你可以在这里写下你的模拟程序
def sysmetric_random_walk():
    """"""
    
    return

https://blog.csdn.net/liujingwei8610/article/details/118053291
参考下

以下是一个使用Python列表实现对称随机游走的示例代码:


import random
import math

# 定义时间段和步长
T = 1.0
n = 100
dt = T / n

# 初始化粒子位置列表
y = [0]

# 模拟对称随机游走
for i in range(n):
    # 以等概率随机选择运动方向
    if random.choice([True, False]):
        y.append(y[-1] + math.sqrt(dt))
    else:
        y.append(y[-1] - math.sqrt(dt))

# 输出粒子位置列表
print(y)

随机游走的图是用‘matplotlib’生成的。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7516956
  • 这篇博客你也可以参考下:【python】numpy实现:预先指定一个复数矩阵,然后将两个实数矩阵所合成的复数矩阵结果放在其中
  • 您还可以看一下 关东升老师的Python数据分析与科学计算基础篇:NumPy图解,使抽象的数据具象为可触摸的图形课程中的 类型代码和字节序小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以解决该问题。

    对称随机游走可以通过在每一步中随机选择方向和步长来实现。方向可以在正负两个方向之间随机选择,步长可以在一些预设的值中随机选择,保证每个方向的步长概率相等。具体实现代码如下:

    import random
    
    # 设定预设步长列表
    step_sizes = [1, 2, 3]
    
    def symmetric_random_walk(num_steps):
        # 初始化起点和总步数
        position = 0
        steps_left = num_steps
    
        # 循环走步,每次更新位置和步数
        while steps_left > 0:
            # 在预设的步长列表中随机选择
            step_size = random.choice(step_sizes)
            # 在正负两个方向中随机选择
            direction = random.choice([-1, 1])
    
            position += direction * step_size
            steps_left -= 1
    
        return position
    

    这个代码中,num_steps 是总步数, step_sizes 是预设的步长列表,position 记录当前的位置,steps_left 记录还需要走的步数。每次循环从 step_sizes 中随机选择一个步长 step_size 和一个方向 direction,更新当前位置 position,并将还需要走的步数 steps_left 减一。最后返回走完所有步数后的位置。

    代码的核心逻辑是通过从列表中随机选择元素来实现对称随机性。