跳至內容
Astera Technology

超過分界後,報價怎樣計?

把兩種假設分段算法實際跑一次,連分界也核。

下載完整個案資料及參考答案 ↓

訂判斷及所需輸入

以下是虛構計價點數,不是供應商實價。逐段計法首十單位各兩點,超出各一點;整段計法則超過十後全部各一點。十二單位分別得二十二及十二,先訂算法才可比總數。

已填本地測試工作表
情況輸入 JSON
原例測試{"units":12,"rule":"marginal"}
下載可編輯 CSV ↓

跑所附比較

程序按已列函數計,不靠「用量優惠」猜。十單位兩路都二十;十一便分成二十一及十一,示範要留這個有分別的個案。

錯誤及所需輸出
路徑輸出 JSON
錯誤路徑{"quotedRule":"marginal","fictionalCredits":12}
所需路徑{"quotedRule":"marginal","fictionalCredits":22}
下載可編輯 CSV ↓
完整本地 Node24.14.1 程序
import assert from 'node:assert/strict';

const run=function run(i,corrected=true){
    if(!Number.isInteger(i.units)||i.units<0||!['marginal','whole-band'].includes(i.rule))return {held:true};
    const marginal=Math.min(i.units,10)*2+Math.max(i.units-10,0);
    const whole=i.units*(i.units>10?1:2);
    return {quotedRule:i.rule,fictionalCredits:corrected?(i.rule==='marginal'?marginal:whole):whole};
  };
const cases=[{"input":{"units":12,"rule":"marginal"},"corrected":false,"expected":{"quotedRule":"marginal","fictionalCredits":12}},{"input":{"units":12,"rule":"marginal"},"corrected":true,"expected":{"quotedRule":"marginal","fictionalCredits":22}},{"input":{"units":10,"rule":"marginal"},"corrected":true,"expected":{"quotedRule":"marginal","fictionalCredits":20}},{"input":{"units":11,"rule":"marginal"},"corrected":true,"expected":{"quotedRule":"marginal","fictionalCredits":21}},{"input":{"units":11,"rule":"whole-band"},"corrected":true,"expected":{"quotedRule":"whole-band","fictionalCredits":11}},{"input":{"units":12,"rule":null},"corrected":true,"expected":{"held":true}}];
for(const test of cases){const actual=await run(test.input,test.corrected);assert.deepEqual(actual,test.expected);console.log(actual);}
下載可執行例子 ↓

按邊界依據作判斷

沒有分段規則就先停,即使某個總數剛好相同也不足。只試十單位,分不出兩種計法。

  1. 取明訂分段函數
  2. 試分界及首個超額
  3. 沿已訂算法比較

不能用一次剛巧同額推定算法。

可編輯邊界輸入及結果
條件輸入 JSON預期輸出 JSON
剛好十單位{"units":10,"rule":"marginal"}{"quotedRule":"marginal","fictionalCredits":20}
首個超出單位{"units":11,"rule":"marginal"}{"quotedRule":"marginal","fictionalCredits":21}
整段計法首個超出{"units":11,"rule":"whole-band"}{"quotedRule":"whole-band","fictionalCredits":11}
計價規則未訂{"units":12,"rule":null}{"held":true}
下載可編輯 CSV ↓

十單位總數相同,可確定是逐段計嗎?

查看參考答案

不能,兩路都二十。十一單位時逐段二十一、整段十一;須取明訂規則並保留兩個測試。

相關資源