我试图用random模块在1D中生成一个随机游动.如果某个时刻的位置是x,那么下一个位置可以是x+1x-1,概率相等.我需要在random步(start=0步)后找到最终位置.

我已经开发了以下代码,但我不确定应该如何定义 Select 之间的相等概率.

import random
def randomwalk1D(n):
    x = 0
    start = x
    xposition = [start]
    probabilities = [0.5, 0.5]
    for i in range(1, n + 1):
        step = random.choice(probabilities)
        if step > probabilities[0]:
            x += 1
        elif step < probabilities[1]:
            x -= 1
        xposition.append(start)
    return xposition

函数只返回0作为结果(置n = 100).我只想使用random模块.有人能告诉我接下来该怎么办吗?

推荐答案

您的代码有两个问题:

  1. 你需要传递-11random.choice()的选项,而不是这些选项的权重.您还可以摆脱与probabilities中的元素和采样步骤的直接比较.如果你想要加权抽样,use numpy.random.choice.
  2. 你不断地在xpositions列表中添加start,即使你从未更新过它.要解决此问题,请改为附加x,它表示实际的当前位置.

下面是解决这两个问题的代码片段.

import random
def randomwalk1D(n):
    x = 0
    start = x
    xposition = [start]
    probabilities = [-1, 1]
    for i in range(1, n + 1):
        x += random.choice(probabilities)
        xposition.append(x)
    return xposition

print(randomwalk1D(100))

Python相关问答推荐

使用itertools出现第n个子串

合并同名列,但一列为空,另一列包含值

customtkinter中使用的这个小部件的名称是什么

pandas DataFrame中类型转换混乱

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

如何在Python中使用ijson解析SON期间检索文件位置?

Pandas 在时间序列中设定频率

在使用Guouti包的Python中运行MPP模型时内存不足

Pandas 除以一列中出现的每个值

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

在Python Attrs包中,如何在field_Transformer函数中添加字段?

将图像拖到另一个图像

如何在python xsModel库中定义一个可选[December]字段,以产生受约束的SON模式

如何在python polars中停止otherate(),当使用when()表达式时?

在含噪声的3D点网格中识别4连通点模式

无法连接到Keycloat服务器

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

在单次扫描中创建列表

以逻辑方式获取自己的pyproject.toml依赖项

用两个字符串构建回文