线控数解法很难算,而且在点多的时候极其复杂。
下面对线控给出我的编程方案,供大家使用。
如果是周二答辩的(懂得都懂)请注明代码出处。
对应《道路交通管理与控制》(袁振洲主编)225页例题,验证代码的正确性。
代码跑的结果如下:附上书原图
代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60#-*-coding:GBK -*- from openpyxl import Workbook from openpyxl import load_workbook from openpyxl.writer.excel import ExcelWriter from openpyxl.styles import PatternFill import math import numpy as np wb=load_workbook('E:\time1.xlsx') wb.sheetnames ws=wb['Sheet1'] ideal=44 #计算 def solve(i,j,k): a=ws.cell(i,1).value b=0 for h in range(j,k): if h==2: b=ws.cell(1,h).value-a while (b>=a): b=b-a if b>=0: ws.cell(i,h).value=b else: ws.cell(i,h).value=ws.cell(1,h).value else: b=ws.cell(i,h-1).value+ws.cell(1,h).value-a if b>=0: while(b>=a): b=b-a ws.cell(i,h).value=b else: ws.cell(i,h).value=b+a r_start=2 r_end=33 l_start=2 l_end=8 for r in range(r_start,r_end): solve(r,l_start,l_end) fin=[] for r in range(r_start,r_end): c=[0] for s in range(l_start-1,l_end): m=ws.cell(r,s).value c.append(m) c=sorted(c) maxmum=0 for q in range(1,len(c)): m=c[q]-c[q-1] if m>maxmum: maxmum=m fin.append(maxmum) ws.cell(r,l_end).value=maxmum print(max(fin)) for r in range(r_start,r_end): if ws.cell(r,l_end).value==max(fin): ws.cell(r,l_end).fill= PatternFill("solid", fgColor="00FF00") wb.save('E:\time1.xlsx')
仅供参考!
最后
以上就是怡然钥匙最近收集整理的关于线控数解法表python编程实现的全部内容,更多相关线控数解法表python编程实现内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复