首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能解释一下下面的伪代码是怎么做的吗?它可能是哪种类型的代码?

你能解释一下下面的伪代码是怎么做的吗?它可能是哪种类型的代码?
EN

Stack Overflow用户
提问于 2020-03-12 04:26:03
回答 2查看 386关注 0票数 0

我相信代码试图生成一个数组,选择峰值并显示趋势,但不确定。

代码语言:javascript
复制
array[N] # array of N integers, indexed 0 to N-1;

# assume it’s populated with
[1,4,2,-2,-9,10,2,12,2,-4,-4,-4,-4,2,6,7]

peak = array[0]
index = 0
output = [] # array of tuples
For x in 1..N-1
    if (array[x]*array[x-1] > 0)
        if peak < 0 and array[x] < peak
            peak = array[x]
            index = x
        if peak >= 0 and array[x] > peak
            peak = array[x]
            index = x
        else
            output.insert( (index, peak) )
            peak = array[x]
            index = x
        end if
end for
return output
EN

回答 2

Stack Overflow用户

发布于 2020-03-12 05:47:37

看起来,代码是在正弦波中找到所有(正的峰值+下降的正值)和(负的峰值+上升的负值),并保持不变的值。

如果从给定的数组中画出正弦波,并看到输出

代码语言:javascript
复制
Output: [(1, 4), (2, 2), (4, -9), (7, 12), (8, 2), (10, -4), (11, -4), (12, -4)]

我们可以看到第一个峰值(4),然后是下降正,然后是负峰值( -9),然后是负峰值(-9),然后是下一个正峰值(12),因为没有负上升值(可以通过插入负数>-9来检验),然后是2,呈下降阳性,以此类推。

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2022-09-03 20:51:48

按伪码计算的当前索引和峰值

代码语言:javascript
复制
index = 0,1,2,3,4,6,7,8,10,11,12,14,15
peak = 1,4,2,-2,-9,2,12,2,-4,-4,-4,6,7

峰不是产生正弦波,因为10是缺失的peek,但如果我们可以消除(arrayx*arrayx-1 > 0)条件,那么我们就可以有正弦波和适当的尖峰,伪码将对输出有意义。

代码语言:javascript
复制
[(1, 4), (2, 2), (4, -9), (5, 10), (7, 12), (8, 2), (9, -4), (10, -4), (11, -4), (12, -4)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60647629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档