我正在进行一项蒙特卡罗模拟来模拟一些粒子。我的代码中有几个瓶颈,但主要的问题在于,在某些尝试中,我需要更新全部粒子的属性。代码是用c++编写的,目前我有几个循环来实现:
1. 一个循环来存储所有粒子的旧属性并更新新属性。
2. 一个二维循环的相互作用。
3. 另一个二维循环的相互作用(我无法将其与第一个合并)。
4. 一个循环来存储接受步骤/拒绝步骤。
我希望通过交换来删除步骤4,但我找不到方法。所有粒子都是一个类,其中包含名为
1. 一个循环来存储所有粒子的旧属性并更新新属性。
2. 一个二维循环的相互作用。
3. 另一个二维循环的相互作用(我无法将其与第一个合并)。
4. 一个循环来存储接受步骤/拒绝步骤。
我希望通过交换来删除步骤4,但我找不到方法。所有粒子都是一个类,其中包含名为
properties
和nextProperties
或oldProperties
的几个元素。您会如何处理这个问题?