#純靠北工程師2zo
寫程式也是有分派的,光加總,至少就有三派。
迴圈派(相信編譯器都會優化)
for (i=1;i<=100;i++)
total=total+i;
---
遞迴派
sigma(int l,int r){
if(r==l) return l;
return sigma(l,r-1)+r;
}
sigma(1,100)
---
效能派
n*(n+1) / 2
更複雜的功能下,考慮
效能 時間 腦力,你會是哪派?
👉 去 GitHub 給我們🌟用行動支持純靠北工程師 https://github.com/init-engineer/init.engineer
📢 匿名發文請至 https://kaobei.engineer/cards/create
🥙 全平台留言 https://kaobei.engineer/cards/show/3876
同時也有176部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,從EXCEL VBA到Python開發第2次上課 01_重點回顧與BMI計算 02_計算BMI與格式化到小數點第二位 03_邏輯判斷BMI的評語 04_用format格式化資料 05_用for迴圈加總1到99 06_奇數偶數分別加總 07_用step與兩個for迴圈 08_九九乘法表單列輸出 09...
「for迴圈加總」的推薦目錄:
- 關於for迴圈加總 在 純靠北工程師 Facebook 的最佳解答
- 關於for迴圈加總 在 吳老師教學部落格 Youtube 的精選貼文
- 關於for迴圈加總 在 吳老師教學部落格 Youtube 的最佳貼文
- 關於for迴圈加總 在 吳老師教學部落格 Youtube 的最讚貼文
- 關於for迴圈加總 在 [心得] Loop unrolling, Duff's device - 看板C_and_CPP - 批踢踢 ... 的評價
- 關於for迴圈加總 在 JS 筆記- for 迴圈,i++、加總、break 的使用 - 提姆寫程式 的評價
- 關於for迴圈加總 在 加總 的評價
- 關於for迴圈加總 在 for迴圈加總在PTT/Dcard完整相關資訊 的評價
- 關於for迴圈加總 在 for迴圈加總在PTT/Dcard完整相關資訊 的評價
- 關於for迴圈加總 在 python迴圈加總-在PTT/MOBILE01上品牌家電推薦開箱 的評價
- 關於for迴圈加總 在 python迴圈加總-在PTT/MOBILE01上品牌家電推薦開箱 的評價
- 關於for迴圈加總 在 for迴圈加總在PTT/Dcard完整相關資訊 - 萌寵公園 的評價
- 關於for迴圈加總 在 for迴圈加總在PTT/Dcard完整相關資訊 - 萌寵公園 的評價
for迴圈加總 在 吳老師教學部落格 Youtube 的精選貼文
從EXCEL VBA到Python開發第2次上課
01_重點回顧與BMI計算
02_計算BMI與格式化到小數點第二位
03_邏輯判斷BMI的評語
04_用format格式化資料
05_用for迴圈加總1到99
06_奇數偶數分別加總
07_用step與兩個for迴圈
08_九九乘法表單列輸出
09_九九乘法表多列輸出
完整教學
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/g/_vbapython117
吳老師教學論壇
http://www.tqc.idv.tw/
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/9/27
EXCEL,VBA,Python,東吳推廣部,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

for迴圈加總 在 吳老師教學部落格 Youtube 的最佳貼文
從EXCEL VBA到Python開發第2次上課
01_重點回顧與BMI計算
02_計算BMI與格式化到小數點第二位
03_邏輯判斷BMI的評語
04_用format格式化資料
05_用for迴圈加總1到99
06_奇數偶數分別加總
07_用step與兩個for迴圈
08_九九乘法表單列輸出
09_九九乘法表多列輸出
完整教學
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/g/_vbapython117
吳老師教學論壇
http://www.tqc.idv.tw/
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/9/27
EXCEL,VBA,Python,東吳推廣部,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

for迴圈加總 在 吳老師教學部落格 Youtube 的最讚貼文
從EXCEL VBA到Python開發第2次上課
01_重點回顧與BMI計算
02_計算BMI與格式化到小數點第二位
03_邏輯判斷BMI的評語
04_用format格式化資料
05_用for迴圈加總1到99
06_奇數偶數分別加總
07_用step與兩個for迴圈
08_九九乘法表單列輸出
09_九九乘法表多列輸出
完整教學
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/g/_vbapython117
吳老師教學論壇
http://www.tqc.idv.tw/
課程簡介:入門
建置Python開發環境
基本語法與結構控制
迴圈、資料結構及函式
VBA重要函數到Python
檔案處理
資料庫處理
課程簡介:進階
網頁資料擷取與分析、Python網頁測試自動化、YouTube影片下載器
處理 Excel 試算表、處理 PDF 與 Word 文件、處理 CSV 檔和 JSON 資料
實戰:PM2.5即時監測顯示器、Email 和文字簡訊、處理影像圖片、以 GUI 自動化來控制鍵盤和滑鼠
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
Python程式設計入門
作者:葉難
ISBN:9789864340057
出版社:博碩文化
出版日期:2015/04/02
吳老師 110/9/27
EXCEL,VBA,Python,東吳推廣部,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

for迴圈加總 在 JS 筆記- for 迴圈,i++、加總、break 的使用 - 提姆寫程式 的推薦與評價
//不斷反覆輸入i++ 就會一直累加前一次的結果,會變成2, 3, 4... 用for 迴圈做加總. 從陣列中取出資料,並使用for ... ... <看更多>
for迴圈加總 在 加總 的推薦與評價
加總. GitHub Gist: instantly share code, notes, and snippets. ... 定義main() 主函式內容, 目的在利用for 迴圈進行整數的累加. main(){. ... <看更多>
for迴圈加總 在 [心得] Loop unrolling, Duff's device - 看板C_and_CPP - 批踢踢 ... 的推薦與評價
這些技巧是在書上面看到的,跟大家分享。
假設現在要做一個整數陣列a的加總,如果已知陣列長度為100的話,
最簡單的寫法是。
for ( i = 0; i < 100; ++i )
sum += a[ i ];
但是這樣會做100次的 i < 100 的判斷,增加branch降低效率,所
以loop unrolling的技巧就是在迴圈內部多做幾次,減少判斷的次
數。
for ( i = 0; i < 100; i += 5 ) {
sum += a[ i ];
sum += a[ i + 1 ];
sum += a[ i + 2 ];
sum += a[ i + 3 ];
sum += a[ i + 4 ];
}
(當然可以乾脆展開100次,所有的判斷都省了,但是這樣做會加大
程式碼的長度,對效率也會有影響,而且完全沒彈性)
這是在已知長度是100的情況下才能做的,因為我們知道100是5的倍
數,但是如果情況變成要對任意的陣列長度n都可以適用,就得寫成。
for ( i = 0; i < n % 5; ++i ) // 先把n % 5的餘數做完
sum += a[ i ];
for ( ; i < n; i += 5 ) { // 剩下的迴圈數一定是5的倍數了
sum += a[ i ];
sum += a[ i + 1 ];
sum += a[ i + 2 ];
sum += a[ i + 3 ];
sum += a[ i + 4 ];
}
不過Duff's device的技巧就是可以把這兩個迴圈融合在一起。
i = 0;
switch ( n % 5 ) {
case 0: do {sum += a[ i++ ];
case 4: sum += a[ i++ ];
case 3: sum += a[ i++ ];
case 2: sum += a[ i++ ];
case 1: sum += a[ i++ ];
} while ((n -= 5) > 0);
}
這邊是用switch-case跳到do-while的迴圈之中。
回到一開始的loop unrolling的版本
for ( i = 0; i < 100; i += 5 ) {
sum += a[ i ];
sum += a[ i + 1 ];
sum += a[ i + 2 ];
sum += a[ i + 3 ];
sum += a[ i + 4 ];
}
其實這程式等價於
for ( i = 0; i < 100;) {
sum += a[ i++ ];
sum += a[ i++ ];
sum += a[ i++ ];
sum += a[ i++ ];
sum += a[ i++ ];
}
但是這樣做會讓造成前後兩個指令之間在i上的相依性,沒辦法完全
利用到CPU的pipeline。用前者會稍微比較好,不過實際上sum也是
造成相依性的來源,所以可以改寫成
for ( i = 0; i < 100; i += 5 ) {
sum1 += a[ i ];
sum2 += a[ i + 1 ];
sum1 += a[ i + 2 ];
sum2 += a[ i + 3 ];
sum1 += a[ i + 4 ];
}
sum = sum1 + sum2;
這技巧也能和Duff's device同時使用,只是有沒有辦法增加效率就
要試試看才知道。
上面這些程式碼都只是示意,迴圈要展開幾次,要用多少個變數來
加總才能達成最高效率,與硬體實作部份有很大的關係,只能慢慢
的作測試。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.162.51
... <看更多>