我被分配了创建简单控制台应用程序的项目。在2D平面中模拟布朗运动。我没有得到太多有关如何执行此操作的信息(并且我希望这是一个非常受欢迎的任务,以便我可以有所了解),只是它依赖于随机数生成。我研究了布朗运动,并发现了一些看起来很复杂的公式,但根据描述,似乎只是必须在一定数量的间隔内随机移动。谁能澄清?我是否要创建一个程序,该程序在一个间隔中连续创建一个随机数,然后修改粒子“x”和“y”的坐标,或者它还有更多其他用途?
谢谢你的帮助。
最佳答案
请记住,随机运动不是“均匀的”,而是如果您绘制运动频率与运动距离的关系,您会发现大多数运动很短,有些运动更长,有些运动时间很长,从而产生了类似于指数的运动下降。
我不记得运动会观察到什么统计曲线,但是您可能可以弄清楚这一点,然后需要制作一个随机数生成器,以生成适合该曲线的值。
我要做的是使用此RNG计算距离,然后使用均匀的RNG计算从零到2 * pi的 Angular ,并使运动为极性。您可以分别计算一个随机X和一个随机Y,但是我不确定您是否会得到相同的分布。
关于c++ - 随机游走布朗运动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10067325/