0

0
0

文字

分享

0
0
0

以程式人的想法為「油價公式」除錯

程式人雜誌
・2013/06/13 ・3781字 ・閱讀時間約 7 分鐘 ・SR值 556 ・八年級

國小高年級科普文,素養閱讀就從今天就開始!!

文 / 陳鍾誠 (國立金門大學資工系助理教授)


近來、每當中油油價要調漲時,很多新聞都會報導或批評,例如我們常常會聽到以下說法:

「甚麼都漲、就是薪水不漲」

等等的抱怨。

但是、您瞭解中油油價調漲的基準與方式是甚麼嗎?其中是否藏有某些您不知道的秘密呢?

在本文中,我們將透過「程式人的專業角度」,為您解讀油價公式內所隱藏的秘密!

但是在此之前,先讓我們介紹一下這個祕密背後所需要的「數學背景」。

遞歸關係

在「資訊類科系」(Computer Science) 的課程當中,「離散數學」(Discrete Mathematics) 是一們重要的數學課, 其中有個「遞歸關係式」 (Recurrence Equation) 的數學函數,可以用來計算程式 (或演算法) 的執行效能, 但是在本文中,我們將改用「遞歸關係」來為「中油的油價公式」進行除錯,證明「中油的油價公式會造成幾何暴漲」。

首先讓我們來看看甚麼是「遞歸關係」,先從一個比較簡單的例子開始:

問題 1. 假如有隻母雞,從成年開始他每天下一個蛋,那麼在成年後第 n 天他總共下了幾個蛋呢?

解答:關於這個問題,答案非常簡單,很多人一看就知道是 n 個蛋了。

但是讓我們姑且用遞歸關係來寫出這個問題的數學式:

T(n) = T(n-1) + 1
T(1) = 1

為了求解這樣的算式,我們可以將 n 代入 1, 2, 3, ….,然後列表如下:

T(1) = 1
T(2) = T(1) + 1
T(3) = T(2) + 1
T(4) = T(3) + 1
…..
T(n) = T(n-1) + 1

於是、您可以透過由上而下的計算方式,算出這個「遞歸關係」的解答,如下所示:

T(2) = T(1) + 1 = 1 + 1 = 2
T(3) = T(2) + 1 = 2 + 1 = 3
T(4) = T(3) + 1 = 3 + 1 = 4
….

很直覺的,您應該會猜測 T(n) 的解答就是 n,這個猜測是沒錯的!

上述遞歸關係的解答 T(n) 是個線性函數,也就是國中課程當中所說的「算術級數」。

接著、讓我們再來看看一種會造成「幾何級數」的遞歸關係,同樣的,讓我們先看看下列問題:

問題 2. 假如培養皿中有隻細菌、該細菌每分鐘分裂一次,請問在第 n 分鐘的時候,共有幾隻細菌?

解答:我們可以將這個問題寫成以下的遞歸關係:

T(n) = 2 * T(n-1)
T(0) = 1

於是我們可以列出前幾項的結果如下:

T(0) = 1
T(1) = 2*T(0) = 2 * 1 = 2
T(2) = 2*T(1) = 2 * 2 = 4
T(3) = 2*T(2) = 2 * 4 = 8
….

如果您觀察一下上述列表,可能會猜測 ,這個猜測也是對的,這類的函數稱為幾何級數。

著名的社會學家「馬爾薩斯」就在其名著「人口論」當中,提出了一個「廣為人知」的論點,其推論如下:

糧食的增長函數是算術級數,而人口的增長函數是幾何幾數,幾何級數後期的增長會遠超過算術級數, 因此糧食最後必然會不足,於是「饑荒、戰爭與大規模的疾病」將會是不可避免的結果。

另外、電腦在表示數字的時候,由於採用固定位元數的方式,因此都會有一些誤差,特別是像π這類的 無理數,更是無法用電腦精確表示,這些誤差如果經過某些遞歸關係放大之後,很可能會造成「差之毫釐、 失之千里」的結果。這類誤差放大的研究,甚至導致了學術上「混沌理論」的重要進展!

中油的油價調漲公式

那麼、這些結果與中油的油價公式有何關係呢?讓我們來看看中油的油價,是如何調整的,在中油的 國內汽、柴油浮動油價調整機制作業原則 這份 PDF 文件當中,有一段令人難以解讀的中文如下:

  • 一、 調價指標:Platts報導之 Dubai 及 Brent均價,分別以70 %及30%權重計算(70 % Dubai +30% Brent),取小數二位,採四捨五入。
  • 二、 調價幅度:每週(週一至週五)調價幅度取「調價指標當週均價乘以當週匯率均價與調價指標前週均價乘以前週匯率均價比較」之80%變動幅度計算,取小數二位,採四捨五入。
  • 三、 調價金額:(一)依「92 無鉛汽油及高級柴油還原依機制計算應調整價格之稅前批售價格」乘以「調價幅度」,分別計算 92無鉛汽油及高級柴油稅前批售價格,再加上稅費換算 零售價(取小數一位,採四捨五入),據以計算調價金額。

由於這段話實在令人難懂,所以讓我們稍為進行一下數學定義,以數學的方式解讀這段「自然語言」,解讀前首先讓我們定義幾個變數:

  • P = 本期價格 = P(t)
  • P’ = 上期價格 = P(t-1)
  • C = 本期國際均價 = C(t)
  • C’ = 上期國際均價 = C(t-1)

以上的的國際均價 C 即為第一項所稱之調價指標。根據上述定義,則調價幅度的數學式解讀如下:

(P-P’)/P’ = (C -C’)/C’ * 0.8

也就是

調價幅度 = (本期價格 P – 上期價格 P’)/上期價格 P’ = (當期調價指標 C – 前期調價指標 C’)/前期調價指標 C’ * 80%

將上述數學式移項調整一下,可得下列數學式:

P = P’ + P’ * (C-C’)/C’ * 0.8

假如那段「令人難以解讀的中文」之數學式真的如以上所解讀的,那麼我們就可以透過電腦計算油價,並且可以進行模擬。

以程式模擬漲跌過程

於是我寫了一個簡單的 C 語言程式以模擬整個油價的調整過程,在程式中我們讓油價以正弦函數 2 + sin(i) 的方式震盪, 這個正弦函數是一個必然介於 1 到 3 之間的函數。但是、模擬的結果肯定會讓人嚇一大跳:

#include <stdio.h>
#include <math.h>

double gen(int n) {
doubl p=1.0, p1=1.0, c=1.0, c1=1.0;
int t;
for (t=1; t<=n; t++) {
c = 2.0+sin(t);
p = ((c-c1)/c1)*0.8*p1 + p1;
printf(“t=%d : c=%6.2f p=%6.2f\n”, t, c, p);
c1 = c;
p1 = p;
}
}

int main() {
gen(1000);
}

雖然在模擬過程當中,國際油價始終在 1 元到 3 元之間震盪,但是經過了很多期之後,整個國內油價還是暴漲, 從最初 2.47 元 (比國際油價 2.84 元還低),到 500 期時上漲到 397.04 元 (此時國際油價為 1.53 元),然後 到了 1000 期時更暴漲到 174551.80 元 (十七萬四千多元,此時國際油價為 2.83 元)。

執行方法與指令

D:\Dropbox\Public\pmag\201307\code>gcc oil.c -o oil

D:\Dropbox\Public\pmag\201307\code>oil > oil.lst

執行結果摘錄

t=1 : c= 2.84 p= 2.47
t=2 : c= 2.91 p= 2.52
t=3 : c= 2.14 p= 1.99
t=4 : c= 1.24 p= 1.32
t=5 : c= 1.04 p= 1.15
t=6 : c= 1.72 p= 1.75
t=7 : c= 2.66 p= 2.51
t=8 : c= 2.99 p= 2.76
t=9 : c= 2.41 p= 2.34
t=10 : c= 1.46 p= 1.59

t=500 : c= 1.53 p=397.04
t=501 : c= 1.00 p=287.44
t=502 : c= 1.39 p=376.22
t=503 : c= 2.34 p=581.21
t=504 : c= 2.97 p=707.73
t=505 : c= 2.71 p=658.28
t=506 : c= 1.80 p=480.40
t=507 : c= 1.07 p=324.10
t=508 : c= 1.19 p=354.96
t=509 : c= 2.06 p=561.54
t=510 : c= 2.87 p=738.31

t=990 : c= 1.61 p=98834.43
t=991 : c= 1.01 p=69539.87
t=992 : c= 1.32 p=86448.98
t=993 : c= 2.25 p=135085.66
t=994 : c= 2.95 p=168513.04
t=995 : c= 2.77 p=160415.99
t=996 : c= 1.89 p=119299.47
t=997 : c= 1.10 p=79653.27
t=998 : c= 1.14 p=82110.42
t=999 : c= 1.97 p=129690.29
t=1000 : c= 2.83 p=174551.80

油價公式的問題

這個模擬過程告訴我們,中油的油價調整公式的設計,會有某種誤差放大效果,而且這種放大效果並非上下一致的,而是向上放大的情況較嚴重,這與達爾文進化論中的「適者生存、而且會產生更多後代」 有點類似,都是一種隨機性的幾何上漲的過程,因此才會造成後期的暴漲。

這個現象並非我所發現的,而是我在 MR. OTTER 在「歐特先生本性難移」網誌的 中油油價公式,創造永遠跌不回去的油價 一文中所看到的, 我只是將該文用程式人的方式重新解讀一遍而已!

透過這個油價的範例,相信您應該可以看到「遞歸運算式」千變萬化的一面,在設計制度時也會更小心一些, 以免不小心落入幾何暴漲的陷阱,造成毀滅性的災難啊!

疑問與解決辦法

在上述的油價調整公式之設計中,調價幅度以 80% 計算,似乎是為了讓油價不要太快上漲或下跌,以免衝擊太大,但事實上這個方式反而是造成油價暴漲的元凶,如果將調價幅度改以 100% 計算,反而不容易有暴漲的問題。

為甚麼呢?讓我們舉一個簡單的例子,假設有某次波動,漲跌各一次,先漲了 100% 再跌了 50%,這時價格應該是 200% * 50% = 2 * 0.5 = 1, 也就是價格會回到原點,但是如果我們將調價幅度以 80% 計算,那麼就會變成 1.8 * 0.6 = 1.08,並沒有回到原價,而是漲了 8%,所以 這個看來是好意的 80% 調價幅度,其實隱藏了爆漲的種子,一但經過很多輪的漲跌之後,就可能造成國際價格不變,但國內價格卻漲翻天的情況。

不過如果國際油價是一路慢慢上漲或下跌,而沒有震盪情況的話,那麼中油油價只會一路慢慢跟隨,而不會有漲翻天的情況!

但是、這個公式每週都至少用一次,那從開始實施浮動油價之後,應該也有幾百次的調整了,那麼為何一直沒有發現暴漲現象呢? 這個問題根據我的猜測,很可能是因為 國內汽、柴油浮動油價調整機制作業原則 這份 PDF 文件的後半部,還有一條重要的規定如下:

  • 七、各週調整後 92無鉛汽油、高級柴油零售價換算稅前批售價格,以亞鄰競爭國(日本、韓國、香港、新加坡)當週稅前價之最低價做為浮動油價調整的上限。

由於被這個第七條壓住了,所以油價並沒有暴漲,但是這樣的做法顯然很沒道理,先設計一個有問題會暴漲的公式,然後再用一個額外的規定壓住它,這真的是非常奇怪不合理的想法!

事實上,採用「遞歸數學式」有時很難控制得很好,如果真的要只是要緩和上漲與下跌的幅度,那不如採用「移動平均線」的方式,例如根據 前 5 期國際油價平均值,加上一定比例的利潤率 (例如 5%) 做為油價,就不會有這種幾何暴漲的現象了。

如果用數學表示這種鎖定國際油價移動平均線的方法,可以用下列「沒有遞歸」的數學式表示:

P(t) = 1.05 * [C(t-1)+C(t-2)+C(t-3)+C(t-4)+C(t-5)] / 5

由於上述算式的右端沒有 P(t-1) 之類的函數存在,而且 C(t-i) 的計算也與國內油價 P(t) 無關,如此就不會因為「回饋效應」而造成幾何暴漲了!

當然,假如我們對上述 國內汽、柴油浮動油價調整機制作業原則 的「中文」理解錯誤的話,那本文的推論就可能是錯誤的。因此我們希望中油 與相關單位能夠澄清一下,最好能將該文的「遞歸數學式」寫出來,讓大家都能看得更清楚明白啊!

參考文獻

轉載自程式人雜誌

文章難易度
程式人雜誌
9 篇文章 ・ 1 位粉絲
程式人雜誌是一個結合「開放原始碼與公益捐款活動」的雜誌,簡稱「開放公益雜誌」。開放公益雜誌本著「讀書做善事、寫書做公益」的精神,我們非常歡迎程式人認養專欄、或者捐出您的網誌。

0

1
0

文字

分享

0
1
0
寵物過敏原有很多種,避免飲食過敏困擾,可選擇單一/特殊肉種寵物飼料
鳥苷三磷酸 (PanSci Promo)_96
・2023/06/06 ・2173字 ・閱讀時間約 4 分鐘

本文由 新萃 Nutri Source 委託,泛科學企劃執行。

你有發現家裡的狗狗經常舔自己四肢,或是身上出現不明紅疹?當心這可能是過敏反應。寵物和人類一樣,也會有過敏反應,過敏可依照「來源」分為三種:吸入性過敏、接觸性過敏和食物性過敏。

寵物的過敏源有哪些?

不管是哪一種過敏反應,在人的身上都比較容易發現和排除。但狗狗的過敏卻很難處理,如果是接觸性或吸入性過敏,即使你把家裡打掃得很乾淨,還是無法排除帶狗出去散步時可能接觸到的環境過敏原。因此,對飼主來說,最容易控制的是食物性過敏。

食物性過敏是怎麼發生的呢?其實,「食物過敏」這個詞並不太準確。正確的臨床醫學用詞是「食物不良反應」(Adverse Food Reaction, 簡稱AFR)(Jackson, H. , 2009),指的是吃下食物後身體產生各種不良反應。並進一步分為食物過敏(Food Allergy)和食物不耐受(Food Intolerances)兩種。

如果你看過動漫作品《工作細胞》,你就會知道過敏其實只是免疫系統對特定成分產生的過度反應,因此全名為「過分敏感」;而食物不耐受則並非免疫性反應,而是消化系統無法代謝或對該生物體有毒,例如狗不能吃洋蔥或巧克力,否則會致死等等。

由於寵物沒有選擇權,只能吃飼主提供的食物,如果飼料中恰好有會造成牠 AFR 的成分,就可能產生各種症狀。除了腸胃發炎和拉肚子外,最明顯的外在症狀就是皮膚問題,包括搔癢、脫毛和紅疹等。後者容易被誤判為皮膚性疾病,讓許多飼主狂跑獸醫院的同時,獸醫也難以對症下藥。

雖然曾有研究透過讓醫師用血液或唾液是否檢測出 IgE 抗體來判斷狗是否過敏(Ermel, R et al.,1997),但最新的研究卻發現,無論使用無論血清的 IgE 抗原或是唾液裡的 IgM 或 IgA 抗原都無法有效檢測出狗狗的過敏來源(Udraite Vovk Let al., 2019 & Lam ATH et al., 2019),甚至會造成偽陽性誤判。因此,目前學界公認唯一能識別食物過敏原的方法就是「食物排除法」(Food Elimination Method)。

以食物排除法,找出毛孩的食物過敏原!

食物排除法的原理相當簡單粗暴,類似我們過去在學校做的實驗一樣,抓出「控制組與對照組」。首先,將狗狗的食物換成牠沒吃過、單一來源且易消化的高蛋白質或水解蛋白質;同時嚴格限制牠對其他食物接觸,包括其他人餵食或路上亂吃等可能性都要注意,此為「對照組」,如此持續 8~12 週,觀察皮膚是否有改善。如果確實有改善,那就證明了確實是 AFR 而非皮膚病。

下一步我們可以進行「食物挑戰」,在每餐食物中逐一嘗試可能的過敏原(例如常見的牛肉、雞蛋等),有如「控制組」,等到症狀又出現,就可以確認哪種食物成分是過敏原,未來就可以在飼料中排除,讓狗狗健康快樂地成長。

這個方法需要飼主的大力配合和耐心紀錄,不僅要在漫長的試驗期,更需要在控制期一一排除所有不可能之後,才能找到答案。而其中最困難的部分,也是實驗的基礎可能是第一步:「提供狗狗牠從未吃過,且肉品單一的蛋白質」,這點對多數飼主來說幾乎是不可能的任務,因為大部分的寵物飼料成分都很複雜。不要說狗狗了,搞不好你連自己沒吃過什麼恐怕都不知道。

飼料成分多而雜,可選單一肉種飼料降低過敏。

那該怎麼進行食物排除法呢?別擔心,沒有找不到的肉品,只有勇敢的狗狗。市面上已經有了針對過敏狗狗的低敏飼料,新萃推出了一系列低敏肉,包含單一肉種的袋鼠肉、鹿肉以及野豬等相比牛豬羊等較不容易取得的肉類,是進行食物排除法第一步測試的首選。

此外,新萃牌無論哪種飼料都有美國專利 Good 4 Life® 奧特奇專利保健元素,能促進飼料中的營養都被狗狗完整吸收。不僅過敏的狗狗能吃,有消化不良症的狗狗也適用。

新萃商品選擇的是單一/特殊肉種的成分,低敏感肉品讓寵物吃了更安心。

參考資料

  1. Thus for the purpose of this discussion, although the term food allergy is used throughout, it should be recognized that this term is a presumptive clinical diagnosis and adverse food reaction is a more accurate term for these canine cases. – Consensus
  2. Jackson, H. (2009). Food allergy in dogs – clinical signs and diagnosis.. Companion Animal Practice.
  3. Assessment of the clinical accuracy of serum and saliva assays for identification of adverse food reaction in dogs without clinical signs of disease – PubMed (nih.gov)
  4. Lam ATH, Johnson LN, Heinze CR. Assessment of the clinical accuracy of serum and saliva assays for identification of adverse food reaction in dogs without clinical signs of disease. J Am Vet Med Assoc. 2019 Oct 1;255(7):812-816. doi: 10.2460/javma.255.7.812. PMID: 31517577.
  5. Direct mucosal challenge with food extracts confirmed the clinical and immunologic evidence of food allergy in these immunized dogs and suggests the usefulness of the atopic dog as a model for food allergy. – Consensus
  6. Ermel, R., Kock, M., Griffey, S., Reinhart, G., & Frick, O. (1997). The atopic dog: a model for food allergy.. Laboratory animal science.
  7. https://www.moreson.com.tw/moreson/blog-detail/furkid-knowledge/pet-knowledge/dog-food-allergen-TOP10/
  8. 狗狗因為食物過敏而搔癢不舒服,為什麼做「過敏原檢測」沒什麼用?
  9. 【獸醫診間小教室】狗狗皮膚搔癢難改善?小心食物過敏! – 汪喵星球 (dogcatstar.com)
  10. 寵物知識+/毛孩對什麼食物過敏?獸醫:驗血完全不準!診斷法只有一個 | 動物星球 | 生活 | 聯合新聞網 (udn.com)
  11. Is there a gold-standard test for adverse food reactions? – Veterinary Practice News
文章難易度
鳥苷三磷酸 (PanSci Promo)_96
172 篇文章 ・ 276 位粉絲
充滿能量的泛科學品牌合作帳號!相關行銷合作請洽:contact@pansci.asia