[C++] 3n+1問題 (3n+1 Problem)
今天又談到3n+1,程式很簡單,卻有很大的學問!簡單來說就是一個程式,要求你輸入一個數字,接著程式判斷是否為奇數,若是的話就把這數字「*3+1」,若否的話就「/2」,這是一個迴圈,直到數字n變為1才停止。看以下程式碼:
今天又談到3n+1,程式很簡單,卻有很大的學問!簡單來說就是一個程式,要求你輸入一個數字,接著程式判斷是否為奇數,若是的話就把這數字「*3+1」,若否的話就「/2」,這是一個迴圈,直到數字n變為1才停止。看以下程式碼:
剛和朋友討論C語言變數儲存等級(storage class),一共有四種:auto、extern、register、static,我們最常用的是auto,然而卻很少人用它來宣告變數,怎麼說起來很奇怪?因為編譯器自動把我們宣告的變數自動設成auto,只是我們都忽略有這回事。看個例子:
C語言所產生的隨機亂數為均勻(Uniform)亂數,假如我們想要產生常態(Normal)亂數怎麼辦呢?我們先來看WiKi的Normal Distribution。
The red line is the standard normal distribution
從國小開始多少有聽過些自相矛盾的情況、對話,今日在「計算理論」課程中再度提到此議題,阿喜老師舉的例子之多,讓我差點闔上的眼睛又張大開來~以下是節錄自講義:
這是計算理論Halting Problem的例子,想要找出奇數的完美數,使得此程式可以停下來。
我們知道完美數的定義是:n=其因數之和,例子如:
這次作業要做動模糊(Motion Blur),自己有攝影的經驗,知道快門速度若比物體動作慢,就會產生此現象,可以區分動靜狀態,在藝術表達上很常被使用。而這次所需要的技巧不難,只要設定兩個參數:模糊程度和物體移動程度即可,接著依照模糊程度來持續繪圖,最後將累積的顏色平衡到畫一張圖的程度。
接著來看我所實驗的結果:
剛做了一個實驗,並且估計執行時間,很令人驚喜的發現,哈~其實理論早就知道了,所以比較【變數相乘】和【常數相乘】的執行速度,當然是……
HappyMan・迴響