算法求教

wdthkyou 2008-02-29 02:41:26
算法问题:
某物质每分钟有个实验监测值t(i),每天共有1440个测值序列t(1)、t(2)、……t(1440)。算法条件:
1、如果某天从第i个测值开始,其后有n个连续测值为递增序列,则计算出dTmax=t(i+n)-t(i),并记录下序列号i、i+n;
2、请输出所有满足条件1的dtmax、i、i+n。
我的代码比较繁,输出结果与图形比对,不能完全吻合,在这里向高手请教简明算法,谢谢!
...全文
87 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qiu5208 2008-02-29
看第二贴,改了一 个地方。
回复
qiu5208 2008-02-29
'就给你一算法的思路,我没试调,具体细节你还要试调,你参考就好。
'暂时存放dtmax、i、n三个数据
Dim tempI As Double '
Dim tempN As Double
Dim tempDtmax As Double

'循环计数
Dim i As Long

'用来检查递增的计数
Dim j As Long


For i = 1 To 1440
j = i
tempI = i '
tempDtmax = 0

'判断递增.
Do While t(j + 1) > t(j)
tempN = j-tempI
tempDtmax = t(j + 1) - t(j)
j = j + 1
i = j '注意,把for循环中的计数i,跳到递增结束的位置.
Loop


If tempDtmax > 0 Then ' 如果tempDtmax> 0说明出现递增情况

'在这里把tempI,tempN,tempDmax,存到专门存放它们的数组即可,
'……………………………… '
'代码省略
End If


Next

回复
qiu5208 2008-02-29
'就给你一算法的思路,我没试调,具体细节你还要试调,你参考就好。
'暂时存放dtmax、i、n三个数据
Dim tempI As Double '
Dim tempN As Double
Dim tempDtmax As Double

'循环计数
Dim i As Long

'用来检查递增的计数
Dim j As Long


For i = 1 To 1440
j = i
tempI = i '
tempDtmax = 0

'判断递增.
Do While t(j + 1) > t(j)
tempN = j + 1
tempDtmax = t(j + 1) - t(j)
j = j + 1
i = j '注意,把for循环中的计数i,跳到递增结束的位置.
Loop


If tempDtmax > 0 Then ' 如果tempDtmax>0说明出现递增情况

'在这里把tempI,tempN,tempDmax,存到专门存放它们的数组即可,
'……………………………… '
'代码省略
End If


Next

回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-02-29 02:41
社区公告
暂无公告