二维布朗运动 c代码
时间: 2024-01-30 17:00:33 浏览: 136
C 代码 模拟M维区域中的布朗运动.rar
二维布朗运动是一种随机运动模型,描述了微小颗粒在流体中受到随机力的作用而产生的运动。下面是一个简单的C语言代码来模拟二维布朗运动:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 100
#define STEPS 1000
#define RAND_MAX 32767
int main() {
int x = SIZE/2; // 粒子的初始位置
int y = SIZE/2;
srand(time(NULL)); // 初始化随机数种子
for (int i = 0; i < STEPS; i++) {
int r = rand() % 4; // 生成0-3的随机数
switch(r) {
case 0:
x += 1; // 右移一步
break;
case 1:
x -= 1; // 左移一步
break;
case 2:
y += 1; // 上移一步
break;
case 3:
y -= 1; // 下移一步
break;
}
// 限制粒子在一个SIZE*SIZE的正方形内运动
if (x < 0) x = 0;
if (x >= SIZE) x = SIZE-1;
if (y < 0) y = 0;
if (y >= SIZE) y = SIZE-1;
printf("(%d, %d)\n", x, y);
}
return 0;
}
```
以上代码模拟了一个粒子在一个SIZE*SIZE的正方形内进行STEPS步的布朗运动。在每一步中,粒子都会随机选择向上、下、左、右四个方向的一个进行移动,直到完成所有步数。这个简单的模拟展示了布朗运动的随机性和不确定性。
阅读全文