求数据曲线峰和谷的标识算法
算法需求背景:
把某人的每日体重用软件绘制成一条曲线,假设该人任意相邻两天的体重都不会绝对相等,并且假设该人体重不可能从称重之日起每日一直增加或者一直减少下去。
显然,连续两日体重值上升后如果次日体重值下降,或者连续两日体重值下降后如果次日体重值上升,那么在图形上会分别呈现为峰和谷。
为了自动标识图形中的峰和谷,同时使得峰和谷对体重分析有意义,我们规定只标识相邻峰和谷之间至少有累计3个以上(不包括峰和谷本身)体重下跌方向(从峰到谷)或者上升方向(从谷到峰)数据的峰和谷,也就是不对少于累计5日(包括峰和谷本身)以上的峰和谷进行标识。相邻峰和谷之间存在所谓至少3个体重上涨或下跌数据,虽然不要求是连续3天的3个数据,但是要求至少有3个体重数据依照时间序号顺序满足第1个数据>第2个数据>第3个数据,或者第1个数据<第2个数据<第3个数据这样的条件。
求助可以自动标识这种类型峰和谷的算法或者代码,代码可以是任意编程语言。