产品 0:部件1→部件0
产品1:部件2→部件4→部件3
产品号 | 部件顺序 | 材料生产开始时刻 | 材料生产所需时长 | 部件完成所需时长 |
产品0 | 部件1 | 3 | 3 | 2 |
部件0 | 2 | 2 | 1 | |
产品1 | 部件 2 | 3 | 2 | 2 |
部件4 | 4 | 1 | 3 | |
部件3 | 9 | 2 | 2 |
(2)若arr=[[0,-1],[1,0],[2,4],[3,-1],[4,3]],arr[i][0]表示arr[i][1]的前驱部件,arr[i][1]为-1时表示arr[i][0]为某个产品中最后的部件。可通过pre函数提炼出每个产品所需的第一个部件。
def pre(arr):
i = 0;j = i +1;flag = True
h=[]
while i < len(arr):
if j < len(arr)and arr[i][0]!= arr[j][1]:
j+=1
else:

if j==len(arr)or not flag:
if flag==True:
h.append(arr[i][0])
i += 1;j= 0
flag = True
return h
path= [[0,-1],[1,0],[2,4],[3,-1],[4,3]],现调用该函数,pre(path),则加框处代码执行
(3)编写程序计算每个部件完成的时刻。
'''
部件数据存cmpt列表,cmpt[i][0]存“部件i”完成所需时长,cmpt[i][1]初始均为-1
材料数据存mate列表,mate[i][0]存“材料i”开始时刻, mate[i][1]存完成“材料i”所需时长
部件顺序关系存入path数据, path[i][0]表示path[i][1]的前驱部件代码略
'''
n=len(cmpt) #表示共有n个部件
head = pre(path)
c=[]
nl = len(path)
for i in range(nl):
①
cmpt[k][1]=path[i][1]
for i in range(len(head)):
②
curtime = 0
while p!= -1:
t=mate[p][0] + mate[p][1]
if t> curtime:
curtime =t+ cmpt[p][0]
else:
③
c.append([p,curtime]) #c列表存储部件编号和该部件完成的时刻
p= cmpt[p][1]
#按先后顺序输出每个产品的各个部件完成的时刻,代码略

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

