python-捕获分子的晶格结构-无法正常工作

2023-12-03

我有这个问题:

创建一个程序,构造一 (1) 维的晶格并 100000 个站点。在这个格子中随机放置一些陷阱 分子,其浓度为 c。随机放置 1 个粒子 放在格子上并让它执行随机游走。在这次行走中 您不会设置时间限制,即您不会声明 具体步数。当粒子落下时行走就会停止 陷阱中............................................注意边界 状况。当粒子到达晶格的边界时 不应该让它逃脱,而应该留在格子里, 要么返回到原来的位置,要么被放置在 格子的对面位置........

我的方法显示在我创建的代码中(我在其中有注释)。

def steps1d(self,pos,c):
    #pos: number of positions
    #c:   concentration of trap-particles

    # array full of traps (zeros)
    myzeros = sc.zeros(self.c*self.pos)

    # grid full of available positions(ones)
    grid = sc.ones(self.pos)

    # distribute c*pos zeros(traps) in random positions (number of positions is pos)
    traps = sc.random.permutation(pos)[:c*pos]

    # the grid in which the particle is moving which has traps inside it 
    grid[traps] = myzeros
    steps_count = []    # list which holds the number of steps
    free = 0
    for i in range(pos):
        # the step of the particle can be 0 or 1
        step=sc.random.random_integers(0,1)
        for step in grid[:]:
            if step == 1:
                free += 1
                steps_count.append(free)
            else:
                break
    return steps_count

我有 3 个问题:

1)我以 pos=10 为例,结果如下:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 , 26, 27, 28, 29, 30, 31, 32, 33, 34, 35...]

我期望 1 次运行每个 10 个数字(可变位置)。

2)我不知道如何处理边界条件。我在想这样的事情:

if free > grid.size:
    free = free - 1

但我无法测试它。另外,我不确定这是否适用于网格的两个边界。

3)如果我想第一步从网格中间开始,我该怎么做?

如果有人对此有提示,我将不胜感激。


在较小的格子上,看看发生了什么:

import numpy

# Populate the lattice
lattice = numpy.concatenate([numpy.ones(90), numpy.zeros(10)])
numpy.random.shuffle(lattice)

# Intialize problem
in_trap = False
steps = 0
pos = int(numpy.random.randint(0,len(lattice),1))
history = []

while in_trap == False:
    # Step of -1 is backward, 1 is forward
    step = numpy.random.permutation([-1,1])[0]

    # Check position for edges and fix if required
    if pos + step > len(lattice) - 1:
        pos = 0
    elif pos + step < 0:
        pos = len(lattice) - 1
    else:
        pos += step

    # Keep track of random walk
    history.append(pos)

    # Check if it's a trap
    if lattice[pos] == 0:
        in_trap = True

    # If not, continue
    steps += 1


print steps
print history
print lattice

我鼓励您在整个过程中添加打印语句以查看每个变量持有什么值。在较小的晶格上进行尝试将有助于您了解其工作原理。

EDIT:

我将让您弄清楚具体细节,但我会将其包装在如下函数中。它设置函数,然后准备空步骤和历史列表来保存每次运行的结果。我们运行该函数,然后将结果附加到这些列表中。

def lattice():
    code
    return steps, history

steps = []
histories = []
for i in range(0,10):
    num_steps, history = lattice()
    steps.append(num_steps)
    histories.append(history)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-捕获分子的晶格结构-无法正常工作 的相关文章

随机推荐

  • 删除一篇文章并拉入下一页的第一篇文章

    我正在尝试建立一个带有分页系统的博客 例如每页 5 篇文章 分页本身一切都很好 但在每篇文章旁边我都添加了一个 删除 按钮 允许管理员动态删除 jquery 相关文章及其内容 我现在想要的是当我删除一篇文章时 附加 不刷新 下一页的第一篇文
  • 通过反射调用带有可选参数的方法

    我在使用带有可选参数的 C 4 0 时遇到了另一个问题 我如何调用一个函数 或者更确切地说是一个构造函数 我有ConstructorInfo对象 我知道它不需要任何参数 这是我现在使用的代码 type GetParameterlessCon
  • 添加引用对话框缺少 .NET Core 项目中的程序集部分

    我一直在创建我的第一个 NET Core 项目 在本例中 只是一个控制台应用程序 我注意到 当我右键单击依赖关系并选择添加参考 出现的对话框不再包含组件部分 在以前的版本中 此部分将列出所有 Microsoft 程序集并包含每个程序集的一些
  • Sybase BCP 与 MS SQL BCP

    我有一个需要使用的多数据库设置 并且两者都有自己的 bcp 版本 但其行为方式不同 另外 两者都在我的 PATH 中 并且 Sybase 列在 MS SQL exe 之前 因此从命令行调用 bcp 总是会命中 Sybase exe 首先 版
  • 将列值设置为 SQL 查询结果中的列名

    我想读取一个表 其中的值将是 sql 查询结果的列名 例如 我有 table1 作为 id col1 col2 0 name ax 0 name2 bx 0 name3 cx 1 name dx 1 name2 ex 1 name3 fx
  • 为什么我应该在并行流中使用并发特性和收集?

    为什么我应该在并行流中使用并发特性和收集 List
  • 为什么 onBeforeFirstShow 有效?

    我一直在学习主从演示 下面是一个片段Master controller js onInit function this getView addEventDelegate onBeforeFirstShow function this get
  • 无法加载文件或程序集“xxx”或其依赖项之一。尝试加载格式不正确的程序

    我刚刚将 Subversion 的修订版本签入了新文件夹 打开解决方案 运行时我得到这个 无法加载文件或程序集 xxxx 或其依赖项之一 试图加载格式不正确的程序 这与我不久前签入的代码相同 为什么现在它要这样做 我现在还在该 xxx 项目
  • 关于常量的一般CS问题

    在使用 C 编程之后 我正在使用 C 进行编程 所以我使用了很多常量 例如 DEFAULT USER ID REMOTE ADDRESS 等 在我看来 使用这样的常量是相当 老式 的 也许还有其他更优雅的方法来在对象之间使用一些常量数据 关
  • 单元格颜色 Django-Tables2

    问题 在哪里编辑 django 代码以根据业务逻辑更改单个单元格的背景颜色 在我的views py中 我有捕获列 pts 最大值的逻辑 def show teams request reg Teamoffense objects filte
  • 这些关于指针的陈述是否具有相同的效果?

    做这个 char myString hello 和这个有同样的效果吗 char actualString hello char myString actualString No char str1 Hello world char arra
  • iPhone 向 Google Apps 发送数据并从 Google Apps 检索数据?

    我见过一些 iPhone 应用程序具有将数据导出到 Google Apps 文档或电子表格的功能 我想为我的 iPhone 应用程序添加类似的功能 有相关的 API 吗 另一个方向怎么样 有没有办法从 Google Apps 电子表格获取数
  • JTable 与自定义 TableModel

    我正在尝试在 Java GUI 上实现 JTable 它可以用文件中的值填充自身 并允许用户对各种单元格进行修改 由于我在 Netbeans IDE 中使用 GUI 编辑器 因此我的第一反应是从调色板将 JTable 添加到我的表单中 但是
  • Swift 自定义 UITableViewCell 不显示数据

    我是 Swift 和 iOS 开发的新手 我正在尝试创建一个自定义 UITableViewCell 我已经在 UIViewController 内的 UITableView 顶部的主情节提要中创建了单元格 当我加载默认单元格之一时 我能够用
  • Jersey:将所有 POST 数据消耗到一个对象中

    我在我的应用程序中使用 Jersey 1 8 我正在尝试消费POST服务器上的数据 数据的类型是application x www form urlencoded 有没有一种方法可以获取一个对象中的所有数据 也许是Map
  • RSA 我应该使用 X.509 还是 PKCS #1

    使用案例 我有一个用例 其中客户端生成私钥和公钥 并将 Base 64 编码的公钥发送到服务器 在服务器端 我将使用此公钥对消息进行加密 并将加密的消息发送到客户端 客户端使用其私钥对其进行解密 商定的算法是 RSA 问题出在服务器端 我发
  • PHP mail() 附件已损坏

    我一直在努力尝试使用 PHP 发送带有附件的电子邮件 它曾经有效 但消息正文被打乱 现在我的邮件正文可以正常工作 但附件已损坏 我曾经对消息正文使用 Base64 编码 但现在使用 7 位 谁能告诉我我做错了什么 PS请不要告诉我应该使用预
  • 页面刷新后 $stateParams 为 null

    当通过 state go 传递 stateParams 时 当我直接单击链接时 它会正确显示 但在页面刷新或通过另一个窗口打开后会变为 null 我有以下功能 scope urlvalues function url page var re
  • 如何使用Http缓存控制保存firestore请求?

    假设我有一个运行 firebase firestore 数据库的网络 移动应用程序 我的应用程序设置为主要服务动态内容完全存储在 firestore 中 所以我们讨论的是缓存动态内容 例如 如果用户加载页面 A 它将向 firestore
  • python-捕获分子的晶格结构-无法正常工作

    我有这个问题 创建一个程序 构造一 1 维的晶格并 100000 个站点 在这个格子中随机放置一些陷阱 分子 其浓度为 c 随机放置 1 个粒子 放在格子上并让它执行随机游走 在这次行走中 您不会设置时间限制 即您不会声明 具体步数 当粒子