场景介绍
路面上有n辆车,以不同的速度向前行驶, 模拟堵车问题。有以下假设:
1.假设某辆车的当前速度是v。
2.若前方可见范围内没车,则它在下一秒的车速提高到v+1,直到达到规定的最高限速。
3.若前方有车,前车的距离为d,且d < v,则它下 一秒的车速降低到d-1 。
4.每辆车会以概率p随机减速v-1。
代码实现
import numpy as np
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
# 对车辆的位移进行限制,当大于水平的公路长度时,则认为是拐外后的位移
def clip(x, path):
for i in range(len(x)):
if x[i] >= path:
x[i] %= path
if __name__ == "__main__":
# 缺省情况下,matplotlib是无法显示中文的,主要原因是没有指定中文字体(文件)
# 在python代码中指定字体(只是其中一种解决方法)
# 定义字体
font = FontProperties(fname=r'c:\windows\fonts\simsun.ttc', size=20)
'''初始化定义'''
path = 5000 # 环形公路的长度
n = 100 # 公路中的车辆数目
v0