技术论坛

一个数组20个元素,求最接近目标值算法

作者 主题
游士

经验值: 277
发帖数: 37
精华帖: 0
主题:【探讨】一个数组20个元素,求最接近目标值算法


只看楼主 楼主 2022-09-30 20:28:30
一个20个元素的数组,给出一个目标值,求最接近目标值的组合,组合最多4个元素可重复,最小一个元素; 我用了四个for循环嵌套,1200PLC扫描周期报警300多ms,有什么好的算法么?
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1787105&b_id=50&s_id=0&num=9

版主

经验值: 76203
发帖数: 19145
精华帖: 378
回复:一个数组20个元素,求最接近目标值算法


只看楼主 1楼 2022-10-01 12:19:16

实在是语焉不详,看不懂你的问题


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
lzm
奇侠

经验值: 8711
发帖数: 1297
精华帖: 8
回复:一个数组20个元素,求最接近目标值算法


只看楼主 2楼 2022-10-01 15:52:13

用周期中断,分步计算,把扫描周期降下来


Querer es poder! 修福粒米藏日月 持慧毫芒有乾坤
以下网友喜欢您的帖子:

  
至圣

经验值: 127352
发帖数: 22001
精华帖: 824
回复:一个数组20个元素,求最接近目标值算法


只看楼主 3楼 2022-10-01 21:57:04

这类问题,最好画个示意图贴出来。

否则,谁也不知道你在问什么?


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠圣

经验值: 4872
发帖数: 741
精华帖: 10
回复:一个数组20个元素,求最接近目标值算法


只看楼主 4楼 2022-10-02 01:06:31

题目是个好题目,可惜表达欠缺。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 5268
发帖数: 696
精华帖: 0
回复:一个数组20个元素,求最接近目标值算法


只看楼主 6楼 2022-10-02 09:59:48

建立1个二维数组,[原数据位置,与目标值差值绝对值],然后利用冒泡法,第一次查找出来后剔除该值,依次进行第二次冒泡、第三次、第四次,看看能否减少扫描时间


 
以下网友喜欢您的帖子:

  
游民

经验值: 131
发帖数: 2
精华帖: 0
回复:一个数组20个元素,求最接近目标值算法


只看楼主 7楼 2022-10-05 10:01:22

循环用mod写,变量用静态的,可以降低扫描周期


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2040
发帖数: 219
精华帖: 3
回复:一个数组20个元素,求最接近目标值算法


只看楼主 8楼 2022-10-07 12:47:29

从20个数据里用1到4个数据组合,找出最接近目标值的组合,没有给定一个合格范围带,只说“最接近“。

这个比多头秤组合可能性更多吧?从1-4个组合遍历,和目标值求偏差绝对值,取偏差值最小。

如果计算流程上不好优化,一次计算的消耗时间可以看成一定的,一个周期内要将计算完成,这个周期的耗时就长,如果把计算分摊到多个扫描周期计算,各扫描周期就会短一些。


多学长知识 多问长见识
以下网友喜欢您的帖子:

  
游侠

经验值: 563
发帖数: 40
精华帖: 0
回复:一个数组20个元素,求最接近目标值算法


只看楼主 9楼 2022-10-07 13:41:54

这类题一般都需要用到穷举法,如果数组固定还好办可以提前计算出1-4个数据的和值然后做从小到大或者从大到小的排序保存并标记源数据,比如185(1,1,3,18) 186(2,15),后面的就很简单了直接用目标值做比较提取数据。另外遇到这样的计算最好还是通过上位机什么的来做比较好,然后直接把结果传输给PLC比较靠谱,168420个值的计算然后和目标值做比较,还有中间的数据传输。。。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 19840
发帖数: 4383
精华帖: 2
回复:一个数组20个元素,求最接近目标值算法


只看楼主 10楼 2022-10-08 10:09:47

就是比较嘛,mov和比较指令配合做。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
一个数组20个元素,求最接近目标值算法
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。