需求如下:
a 需求 30
b 需求 50
c 需求 20
d 需求 80
已有物料
集合1 數量10 適用于A
集合2 數量20 適用于AB
集合3 數量3 適用于ABC
集合4 數量6 適用于AC
集合5 數量2 適用于BC
集合6 數量2 適用于B
集合7 數量1 適用于C
我要怎樣報出一個差缺數來,使我采購的數量最少?
uj5u.com熱心網友回復:
暈,你的一個物料分在好幾個地方存放嗎?uj5u.com熱心網友回復:
在很多地方的也有這種情況,反正就形成了這樣的模式,有什么好的演算法?uj5u.com熱心網友回復:
集合1、2、3 是什么意思和a、b、c 有什么關系
還有A\B\C又是被什么適用
uj5u.com熱心網友回復:
如果單純是數量,不考慮成本價格\站用位置\附加成本等問題的話就是簡單的不等式問題,簡單代數問題uj5u.com熱心網友回復:
A,B,C的BOM關系是怎么樣的呢uj5u.com熱心網友回復:
用C中的背包問題 可以解決!uj5u.com熱心網友回復:
總的來說應當首先區分各種在庫數量.
uj5u.com熱心網友回復:
有些頭暈,應該可以吧需求如下:
a 需求A 30
b 需求B 50
c 需求C 20
d 需求D 80
已有物料
集合1 數量10 適用于A
集合2 數量20 適用于AB
集合3 數量3 適用于ABC
集合4 數量6 適用于AC
集合5 數量2 適用于BC
集合6 數量2 適用于B
集合7 數量1 適用于C
我要怎樣報出一個差缺數來,使我采購的數量最少?
///////////////////////////////////////////
集合 數量 類A 類B 類C
集合1 數量10 A
集合2 數量20 A B
集合3 數量3 A B C
集合4 數量6 A C
集合5 數量2 B C
集合6 數量2 B
集合7 數量1 C
SELECT max(類A) into :類A數量 from 表 where 類A = "A"
SELECT max(類B) into :類B數量 from 表 where 類B = "B"
SELECT max(類C) into :類C數量 from 表 where 類C = "C"
采購數A = 需求A - 類A數量
IF 采購數A <0 THEN
SELECT max(類A) into :類A數量 from 表 where 類A = "A" AND 類B = "B"
IF 類A數量> (- 采購數A) THEN
采購數B = 采購數B + 類A數量
ELSE
采購數B =類A數量
END IF
END IF
采購數B =采購數B + 需求B - 類B數量
IF 采購數B <0 THEN
SELECT max(類B) into :類B數量 from 表 where 類B = "B" AND 類C = "C"
IF 類B數量> (- 采購數B) THEN
采購數C = 采購數C + 類B數量
ELSE
采購數C =類B數量
END IF
END IF
采購數C = 采購數C + 需求C - 類C數量
IF 采購數C <0 THEN
SELECT max(類C) into :類C數量 from 表 where 類C = "C" AND 類A = "A"
IF 類C數量> (- 采購數C) THEN
采購數A = 采購數A + 類C數量
ELSE
采購數A =類C數量
END IF
END IF
采購數A =采購數A + 需求A - 類A數量
uj5u.com熱心網友回復:
有些暈uj5u.com熱心網友回復:
可用貪婪演算法試試,還有你這a,b,c,d有優先級嗎。
uj5u.com熱心網友回復:
多半年的帖子了,又被挖了出來.轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/102241.html
標籤:腳本語言
上一篇:在Pb 9.0打開html檔案,pb就假死。這是怎么回事!
下一篇:Microsoft VBScript 運行時錯誤 (0x800A000D) 型別不匹配: 'Card_Number'
