以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教下遍历后取最大值对应的位置的项目 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97819) |
-- 作者:coolbbs -- 发布时间:2017/3/18 23:47:00 -- 请教下遍历后取最大值对应的位置的项目 Dim Sum As Integer Dim i As Integer Dim cpl As Single Dim bz As Single Dim cczs As Integer Dim lst2 As New List(Of Integer) Dim lst1 As New List(Of Single) Dim zz As Single=0.88*6 output.show(zz) For i = 280 To 580 bz=Int((i/1000*30.5-1.0675)/zz)*zz/(i/1000*30.5) cczs=Int((i/1000*30.5-1.0675)/zz) If bz>0.9 Output.Show("棒长:"&cstr(i)&" 出材支数:"&cstr(cczs)&" 利用率:"&cstr(bz)) lst1.Add(bz) lst2.add(i) End If Next lst1.Sort MessageBox.Show("最优化利用率"&lst1(lst1.Count - 1)) MessageBox.Show("最优化利用率使用棒长"&lst2(lst2.Count - 1)) 这个代码要得出最优化利用率的棒长,这是里要怎么写? ============================================== 上面的代码得出下面的结果,为什么棒长得出来的结果不是最优化利用率的棒长,而是最后一个棒长? 最优化利用率出来的结果是利用率的最大值了,求相应的棒长。 5.28 棒长:382 出材支数:2 利用率:0.90636 棒长:383 出材支数:2 利用率:0.9039935 棒长:384 出材支数:2 利用率:0.9016394 棒长:555 出材支数:3 利用率:0.9357555 棒长:556 出材支数:3 利用率:0.9340724 棒长:557 出材支数:3 利用率:0.9323955 棒长:558 出材支数:3 利用率:0.9307245 棒长:559 出材支数:3 利用率:0.9290596 棒长:560 出材支数:3 利用率:0.9274005 棒长:561 出材支数:3 利用率:0.9257474 棒长:562 出材支数:3 利用率:0.9241002 棒长:563 出材支数:3 利用率:0.9224588 棒长:564 出材支数:3 利用率:0.9208232 棒长:565 出材支数:3 利用率:0.9191934 棒长:566 出材支数:3 利用率:0.9175694 棒长:567 出材支数:3 利用率:0.9159511 棒长:568 出材支数:3 利用率:0.9143385 棒长:569 出材支数:3 利用率:0.9127316 棒长:570 出材支数:3 利用率:0.9111303 棒长:571 出材支数:3 利用率:0.9095346 棒长:572 出材支数:3 利用率:0.9079446 棒长:573 出材支数:3 利用率:0.90636 棒长:574 出材支数:3 利用率:0.904781 棒长:575 出材支数:3 利用率:0.9032074 棒长:576 出材支数:3 利用率:0.9016394 棒长:577 出材支数:3 利用率:0.9000767 [此贴子已经被作者于2017/3/18 23:47:15编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2017/3/20 8:11:00 -- 这种问题,应该再增加一个字典,用于记录每个棒长的最优化利用率 Dim dic As new Dictionary(of integer,Double) 。。。 For 遍历语句 if dic.ContainsKey(棒长) = False then dic.Add(棒长,利用率) Elseif dic(棒长) < 利用率 dic(棒长) = 利用率 Else Continue for End If ... Next 最后这个字典,就是每个棒长的最优利用率。
|
-- 作者:coolbbs -- 发布时间:2017/3/20 23:20:00 -- 明白了,谢谢! |