2022年10月28日 星期五

競爭與變化的年代

http://4rdp.blogspot.com/2022/10/blog-post_28.html?m=0

在網路上看到商業周刊一篇「慘賠5億宣布關門!是誰搶走了白木屋的生意?」管理專文,讀後心有戚戚焉,雖然我不是烘培業的,但是頗能理解市場競爭之勢,誰能掌握客戶、通路、技術,才能持續在市場爭王或生存。

「產銷人發財」在企業管理方面是五個重點管理項目:
生產與作業管理 (Production and operation management) ─
生產是將各種投入資源轉換成最終產品或服務的過程。
行銷管理 (marketing management) ─
行銷發掘消費者實質或潛在需求,並透過各種方法加以滿足的過程。
人力資源管理 (human resource management) ─
配合組織的各項策略及各項作業需要,適時地提供適質適量的人力。
研究發展管理 (research & development management) ─
配合組織策略需求,維持組織的產品及製程在一定水準之上,以求提昇企業之競爭力。
財務管理 (finance management) ─
配合組織各項作業需要,找尋適當的資金來源,以最低的資金成本滿足組織資金需求,並將風險控制在可以接受的範圍內。

2022年10月24日 星期一

再談 APCS

http://4rdp.blogspot.com/2022/10/apcs.html?m=0

每年底學測前,總是興起準備 APCS 考試的話題,因為近日看到金門大學陳鍾誠教授挑起這議題,想說說自己的看法。先說,我是已經 36 年程式設計資歷的工程師,相當清楚如何入門學習程式設計、遭遇困難問題如何逢凶化吉,以及程式工作的職涯發展,另外,自己的小兒也正在讀交大資工,在此分享我們的經驗。

我的心得是,一輩子走程式設計這條路,不是人人都有辦法一直走下去,因此應該要先審視自己的個性,程式人通常有以下特點:

一、愛好自學 ─ 電腦科技日新月異,三不五時會有新技術、新語言、新工具出現,因應需求有時被迫更換使用新東西,非愛好學習者,通常承受不住這種壓力,我寫了三十多年程式,到現在還是經常在學東西,不只程式語言,更多的是跟程式無關的,因為有時解決問題的靈感來自其它領域的知識。學習方法不外乎老師教授以及自己學習,老師教的最大好處,快速有系統地把知識傳授給你,但是你的腦子能否快速吸收這些大量知識,那又是另一回事,很多知識是需要基礎的,如果少了這些先備知識,是無法充分理解應用的,況且有些問題是不明的,因此自己要訓練自己有自學能力,能夠成為自己的老師,分析問題原因,可用的對策有哪些,否則卡關無法突破,你就會想要轉職,個人認為時間花在補習上,你就少了時間訓練自學。

二、理性思考 ─ 越理性的人,邏輯思路通常越清晰,邏輯越清晰,寫出來的程式出錯的機會就越少,品質也越好。程式除錯時也非常需要縝密的抽象思考,甚至要有觀察力、想像力,當程式出現異常時,我會先觀察問題現象,根據線索釐清問題,想像以及假設程式處在某種狀況才導致問題,從這些地方下手多數可以迎刃而解,當然也曾遇過要同時改善三五個地方才能解決的,甚至也碰過不可能的任務 ─ 控制不可控制的系統,這些都需要像偵探般細心判案才能解決問題,個人覺得棋奕類的遊戲是訓練抽象思考很好的工具。不善於理性思考的人,寫出來的程式出錯率極高,光除錯就把自己搞死了,你就不會想當程式設計師了。

三、耐性沉著 ─ 人非先知聖人,程式總有寫錯的時候,此時需要除錯,這也是最考驗耐性的時刻,如果你能一邊寫一邊測試,那是最好的,因為可以容易立即發現錯誤並修正它,不過這也會造成進度緩慢,因為有些程式一直被重複測試浪費時間。那一次全部寫好再測試不就好了?如果這麼做,複雜系統可能無法立即發現錯誤點在哪裡,需要程式碼一個區塊一個區塊檢查,有時還看不出問題點,學生時代,我曾用一個禮拜時間寫出約 1000 行組合語言程式碼,結果用三個禮拜的時間除錯,經過那次教訓後,就採用邊寫邊測的方式設計程式,雖然程式設計進度不快,但是成功率提高很多。因此耐性沉著是程式人非常關鍵特質,少了它,你撐不久。

2022年10月20日 星期四

訓練數學感 333 ─ 答案是 1 還是 2

http://4rdp.blogspot.com/2022/10/333-1-2.html?m=0

在網路上看到一張有趣的連分數數學題目,請問這數值會是多少?

難度 ✩✩

2022年10月16日 星期日

How great leaders inspire action | Simon Sinek

http://4rdp.blogspot.com/2022/10/how-great-leaders-inspire-action-simon.html?m=0


這一部 Why / How / What 影片超過千萬次點閱,是一部經典的 TED 演說,除了告訴你一位好領導者如何帶領群眾邁向目標,也告訴我們做事成功的秘訣,那就是「你為什麼要做這件事?」當你能夠清楚指出你的目標時,差不多已經成功一半。

另外這部影片也點出,若你想影響一群人,需要先抓住 1/6 人的心,只要能突破讓他們成為你的追隨者,那麼很快其他人就會 follow,尤其這群人之中又有喜愛宣揚的人,那麼你的理念或產品就更容易廣為人知。

2022年10月12日 星期三

完整非電腦證明考拉茲猜想 (五) (Collatz conjecture 5)

http://4rdp.blogspot.com/2022/10/collatz-conjecture-5.html?m=0

前文(四),雖然在 2019 年並未成功證明考拉茲猜想,不過近期有新的思路嘗試想再次證明它,這一次把數值十進位轉換成二進位,就比較容易解析與理解。


考拉茲函數為  

任意正整數迭代運算後,目前已知結果會出現 fc = 1,今試證明之。

在進行任何證明之前,先分析二進位數值的特性:
特性一,當最右邊的位元為 0 時,數值為偶數,反之為奇數,
              例如 4 = 0b100,9 = 0b1001
特性二,將偶數除以二,相當於把二進位數值做往右移動一個位元,
              例如 12 / 2 = 6  (12 = 0b1100  -->  6 = 0b110)
特性三,最右邊連續非 0 位元乘 3 加 1,會把這些連續非 0 位元數量減少一個,
              並補入一個 1 在左邊及兩個 0 夾在原來位元外側,例如
              1 x 3 + 1 = 4  (1 = 0b01  -->  4 = 0b100)
              3 x 3 + 1 = 10  (3 = 0b011  -->  10 = 0b1010)
              7 x 3 + 1 = 22  (7 = 0b0111  -->  22 = 0b10110)
特性四,最右邊連續 01 位元乘 3 加 1,會被消除成 00 位元,例如
              5 x 3 + 1 = 16  (5 = 0b0101  -->  16 = 0b10000)
              21 x 3 + 1 = 64  (21 = 0b010101  -->  64 = 0b1000000)
              85 x 3 + 1 = 256  (21 = 0b01010101  -->  256 = 0b100000000)
特性五,非右邊連續非 0 位元乘 3,但是不受加 1 進位影響時,
              它會在左右兩個 1 之間各插入一個 0,例如             
              0b.....010.....  -->  0b...110.....
              0b.....0110.....  -->  0b...10010.....
              0b.....01110.....  -->  0b...101010.....
              0b.....011110.....  -->  0b...1011010.....              

有了以上分析工具,來看幾個例子,
例一
23 =             0b10111
x3+1
--------------------------
                   10101
                  11   1
==========================
70 =           0b1000110
/2 = 35 =      0b100011
x3+1
-------------------------
                  01001
                11    1
=========================
106 =         0b1101010
/2 = 53 =     0b110101
x3+1
------------------------
                  1111
              1001   1
========================
160 =       0b10100000 
/32 = 5 =   0b101
x3+1
-------------------
             1111
                1
===================
16 =      0b10000
/16 = 1 = 0b1

例二
237 =                      0b11101101
x3+1
---------------------------------------
                           10101   11
                               1001 1              
=======================================
712 =                    0b1011001000
/8 = 89 =                0b1011001
x3+1
------------------------------------
                          11    11
                           1001  1
====================================
268 =                  0b100001100
/4 = 67 =              0b1000011
x3+1
----------------------------------
                            1001
                        11     1
==================================
202 =                 0b11001010 
/2 = 101 =            0b1100101
x3+1
---------------------------------
                           1111
                      1001    1
=================================
304 =               0b100110000
/16 = 19 =          0b10011
x3+1
-----------------------------
                       1001
                     11   1
=============================
58 =               0b111010
/2 = 29 =          0b11101
x3+1
----------------------------
                        11
                   10101 1
============================
88 =             0b1011000
/8 = 11 =        0b1011
x3+1
-------------------------
                   1001
                  11  1
=========================
34 =           0b100010
/2 = 17 =      0b10001
x3+1
------------------------
                    11
                11   1
========================
52 =          0b110100
/4 = 13 =     0b1101
x3+1
----------------------
                  11
              1001 1
======================
40 =        0b101000
/8 = 5 =    0b101
x3+1
-------------------
             1111
                1
===================
16 =      0b10000
/16 = 1 = 0b1

由上述例子可以了解,特性二可以消滅偶數右邊的 0,特性三可以每次消滅右邊一個 1,特性四可以快速消滅右邊 01 連續組合,雖然特性五每次會對單獨 1 增生一個 1,但是可能遇到進位而又被消除,總體而言,被消滅的位元比增生的 1 多很多,所以會產生歸一的現象。

2022年10月8日 星期六

訓練數學感 332 ─ 倒藥水

http://4rdp.blogspot.com/2022/10/332.html?m=0

有一個大桶子裝滿藥水,它的容量不清楚,倒出 10 公升藥水後,再裝滿純水稀釋,充分混合後再倒出 8 公升再加入純水裝滿,此時桶子內藥水與純水比例 3:2,請問這桶子有多大?

難度 

2022年10月4日 星期二

數學雜談

http://4rdp.blogspot.com/2022/10/blog-post.html?m=0

行天下是在我部落格上認識的網友,他的專業在數學,而我是數學愛好者,因此偶而會聊聊數學,近日聊到數學實數完備性,數學很在意證明及定義的嚴謹性,不能憑感覺證明,否則一但被人發現破綻,所有奠基在此之上的學問將一夕全毀,另外它也難在用數學的語言,描述及證明,古人從整數 (1, 2, 3, ...)、有理數 (1/2, 1/3, 1/4, ...)、無理數 (√2, ln 2, 𝞹, ...) 到微分連續性,把所有實數數線上漏洞逐一補齊。


把數學故事當小說看,很輕鬆自在,但是當學生學習,天分不夠的人真的蠻痛苦的,能把數學適當應用出來是一件難事,他舉了兩位代表性人物:

克勞德·夏農 (Claude Elwood Shannon),他的短短幾頁的論文 雜訊通道編碼定理,推展出編碼學、通訊、資訊科學的起始,這是從無到有的。

另一位是貝拉,他設計出快速圓周率數值計算的公式,貝拉公式    這公式巧妙的用複數的 log,來計算 pi,雖然公式不是原創,是參考 貝利-波爾溫-普勞夫公式