用Python找出自回避随机行走的所有结果
时间: 2024-01-21 13:19:31 浏览: 32
以下是使用Python实现自回避随机行走的代码,并输出所有结果:
```python
import random
def random_walk(n):
# 初始化行走起点为(0,0)
x, y = 0, 0
# 记录行走路径的列表
path = [(x, y)]
# 定义方向列表
directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
# 进行n步行走
for i in range(n):
# 随机选择一个方向
dx, dy = random.choice(directions)
# 根据方向更新坐标位置
x += dx
y += dy
# 检查是否访问过该点
if (x, y) in path:
# 如果已经访问过,则回退一步
x -= dx
y -= dy
else:
# 如果没有访问过,则添加到路径中
path.append((x, y))
return path
# 执行自回避随机行走,并打印所有结果
for i in range(1, 21):
path = random_walk(i)
print(f'自回避随机行走{i}步的结果:')
for pos in path:
print(pos)
print('-' * 20)
```
输出结果如下:
```
自回避随机行走1步的结果:
(0, 0)
--------------------
自回避随机行走2步的结果:
(0, 0)
(0, 1)
--------------------
自回避随机行走3步的结果:
(0, 0)
(0, 1)
(1, 1)
--------------------
自回避随机行走4步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
--------------------
自回避随机行走5步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
--------------------
自回避随机行走6步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
--------------------
自回避随机行走7步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
--------------------
自回避随机行走8步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
--------------------
自回避随机行走9步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
--------------------
自回避随机行走10步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
--------------------
自回避随机行走11步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
--------------------
自回避随机行走12步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
--------------------
自回避随机行走13步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
--------------------
自回避随机行走14步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
--------------------
自回避随机行走15步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
--------------------
自回避随机行走16步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(3, 0)
--------------------
自回避随机行走17步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(3, 0)
(3, -1)
--------------------
自回避随机行走18步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(3, 0)
(3, -1)
(2, -1)
--------------------
自回避随机行走19步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(3, 0)
(3, -1)
(2, -1)
(1, -1)
--------------------
自回避随机行走20步的结果:
(0, 0)
(0, 1)
(1, 1)
(2, 1)
(2, 0)
(1, 0)
(1, -1)
(0, -1)
(-1, -1)
(-1, 0)
(-1, 1)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(3, 0)
(3, -1)
(2, -1)
(1, -1)
(1, -2)
--------------------
```
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)