99久久国产综合精品女不卡-99久久好看一级毛片-99久久精品99999久久-99久久精品费精品国产-99久久精品费精品国产一区二

ycllzl1314
級別: 探索解密
精華主題: 0
發帖數量: 66 個
工控威望: 196 點
下載積分: 901 分
在線時間: 328(小時)
注冊時間: 2013-12-10
最后登錄: 2025-07-08
查看ycllzl1314的 主題 / 回貼
樓主  發表于: 2015-08-01 23:24
遇到點問題,請師傅們幫忙看看。

有D1  D2  D3 `````D10    一共10個寄存器數據,有常數K,

10個寄存器數據順序排放,每次N個相加,要求(D1+D2+DN )最大并且小于 K,求N

如果用PLC寫上面的程序,該怎么寫,一點思路都沒有,PLC用松下的
lvpretend
級別: 論壇先鋒
精華主題: 0
發帖數量: 1266 個
工控威望: 1436 點
下載積分: 3703 分
在線時間: 324(小時)
注冊時間: 2015-07-20
最后登錄: 2025-02-25
查看lvpretend的 主題 / 回貼
1樓  發表于: 2015-08-02 14:58
沒看懂:
10個寄存器數據順序排放,每次N個相加,要求(D1+D2+DN )最大并且小于 K,求N。
既然每次有N個數相加,為什么有要求(D1+D2+DN)三個數了。
你是不是說的N個數相加,小于K,最大的組合,要求全部組合還是一個就行(因為可能出現多個結果相同)?
這是個排列組合呀!計算量有點大。
首先,10個數N1,N2,N3,N4,N5,N6,N7,N8,N9,N10。
再定義10個緩沖區A1,,,,,,,,A10,10個緩沖區相加,A1+A2+,,,,,,,+A10
N1,,,,,N10可以對應分別移入A1,,,,A10,具體移動幾個數,看情況。不移入的,填寫0.
如何確定哪些要移入呢?
設一個可以位操作的16位數D(其實只需使用低10位),對這個數每次加1,直到10位完成,2^10=1024,也就是要做1024次。
每次計算結果判斷大于K,丟棄。小于K,結果存放到一個中間暫存變量中(定義MAX),且把這個D也存入一個數據隊列中。
D由1開始計算,1的16位二進制編碼為0000 0000 0000 0001
先把A1,,,A10清0
那么按位尋址D-M1位1,則把N1移入A1,其它為0則不移動
A1,,,,A10累加,結果與K比較,大于K,不管,小于K,存入。

下一個循環,
A1,,,A10清零
D+1=2,二進制編碼為0000 0000 0000 0010
把N2,移入A2,再累加,,,,,

現在你懂了吧,也就是把1024種組合全部計算完,就可以找出全部符合你要求的數。
當然這個算法不夠簡練,是最笨的方法,但編程會方便些。其它算法會復雜些,計算速度也要快些,但編程不方便。

這個用時間中斷來寫,比如1mS中斷一次,這樣在1S多點就能求出結果。

主站蜘蛛池模板: 中文字幕1区| 一级性生活视频| 成人免费看片网站| 国产大陆亚洲精品国产| 91www在线观看| 日韩一级免费视频| 亚洲综合在线观看一区www| 欧美国产人妖另类色视频| 国产精品美女一区二区三区| 91久久综合九色综合欧美亚洲| 精品国产品欧美日产在线| 日韩不卡视频在线观看| 亚洲色图25p| 91在线在线啪永久地址| 久久国产精品-国产精品| 中文字幕亚洲一区二区va在线| 国产情侣啪啪| 韩国中文字幕在线观看| 国产不卡网| 国产美女啪| 精品久久国产视频| 免费看欧美日韩一区二区三区| 亚洲 欧洲 日产 专区| 亚洲色图欧美在线| 91入口| avav国产| 一区二区三区四| 九九香蕉| 久久婷婷色| 女人洗澡一级特黄毛片| 日韩欧美二区| 免费毛片观看| 欧美黄色片视频| 国内精品福利视频| 国产一级二级三级在线观看| 国产成年女人免费视频播放a| 国产激情视频在线播放| 美女视频一区二区| 看黄色一级大片| 香蕉大片| 国产精品久久亚洲不卡4k岛国|