《文茜的世界周報》人工智能系列報導
【中國大陸短時間內成為人工智能大國 央視近期推出六集《創新中國》紀錄片 以深入淺出的方式對民眾進行人工智能公民教育 配音由人工智能軟體擔綱 紀錄片中介紹中國大陸經濟 逐步脫離卑微而流水生產線的農民工國家 走向創新高端領域 希望家長鼓勵子弟學習編碼教育及跨領域的重要性】
大家態度都很積極 無人表示反對,那麼<巴黎協定>獲得通過。
2015年12月12日 ,歷經艱難的博奕後,里程碑式的巴黎氣候協定終於誕生,時任聯合國秘書長的潘基文,特別肯定中國在協定推動過程中,做出的歷史貢獻。
「儘管中國面臨著來自國內經濟轉型等多重挑戰,但是在控制溫室氣體排放上,中國承諾,令世界驚嘆,到2030年左右,使二氧化碳排放達到峰值,並爭取儘早實現,2030年,單位國內生產總值二氧化碳排放,比2005年下降60%至65%,」<將改革進行到底>片段。
在美國總統川普,宣布退出巴黎氣候協定之後,中國儼然成為了對抗氣候變化的領導者,為了履行承諾,中國已經展開了一場清潔能源之戰。
「我們生活當中的衣食住行都將會在這裡,希望大家能夠盡快熟悉這個地方,並且愛上這個地方,」營隊老師。
2017年8月,聯合國開發計畫署,在大同組織了一場青少年夏令營,學生們的首個任務,就是拼裝出一輛能利用太陽能發電的汽車。
「等一下把它們連起來就行,這麼機智,」夏令營學生。
夏令營舉辦地點,是在山西省大同市的一座明星電站。
「我們這個熊貓電站可以總結來說,就是利用中美兩國比較先進的組件,來拼湊成一個熊貓輪廓的一個造型,激發青少年對於綠色能源的興趣和激情,」招商新能源項目經理石鑫。
兩隻貓熊分別被命名為起起,點點,象徵綠色能源的起點,在未來起起和點點,每年將提供1億多度的綠色電力,參加夏令營的學生也將在此學習到,環保理念。
直到今天,煤炭仍占世界電力產量的四成以上,在上海這座吸納了2500萬人口的不夜城,主要電力就來自於外高橋三號發電廠,火力發電廠最重要的指標是煤耗,2015年,中國煤電的平均煤耗,是每發一度電,需要312克的煤,而這裡裝備的,是兩台100萬千瓦級的燃煤發電機組,將煤耗乘以100萬就是它所需要的量。
「我們火力發電遇到了兩個挑戰,一個是如何提高效率,降低二氧化碳的排放,另外一條就是如何降低對環境的影響,就是這個技術創新,主要就是圍繞著這兩個方面,提高效率,這一點是根本,我們這個鍋爐呢,它是火力發電廠,最主要的關鍵設備,高度2129米,它的爐膛超過400平米,它是個重要的一個能量的轉換裝置,如何節能,在鍋爐裡就大有文章可做,有很多的創新技術應用在鍋爐上,包括從煤磨製成煤粉,如何提高它的磨製效率,高效地燃燒,」上海外三發電廠總經理馮偉忠。
從最基層的電廠勞工做起的馮偉忠,帶領團隊不斷研發新的脫硫技術。
「200萬千瓦的發電能力,是意味著什麼 ,要知道我們共和國1949年建國的時候,全中國的發電總裝機容量180萬千瓦,」馮偉忠。
「2013年,外三以276.82克每千瓦時的煤耗,打破了丹麥電廠保持的世界紀錄,基本上每降低1克煤耗 ,都伴隨著馮偉忠團隊改造設備得出的一項專利,這項新紀錄還意味著,每送出1度電,外三可比全國平均水平,節約45克標準煤 ,1年就可以節煤52萬噸,價值3億元以上,」專題片段。
也就是說同樣發1度電,少花20%,這不光是節約了將近20%的煤炭資源消耗,大氣的二氧化碳排放同樣減少這麼多,在17度的室外溫度下,外三的排放口連水蒸氣都看不到,這種除塵脫硫達到近乎100%的標準,被稱為近零排放。
「<華爾街日報>稱外三為,世界上效率最高的發電廠,國際能源署說,這裡有地球上最清潔的火電,中國正施行著世界上最環保的煤炭利用,」專題片段。
除此之外中國也不斷尋找乾淨能源,以彌補"多煤少油缺氣"的短板。
「在當下的中國,光伏(太陽能板)正在不斷地適應著,各種地貌特徵 ,在以丘陵為主的福建省,光伏沿著山勢覆蓋出一座梯田,現代技術融入到自然中,成為一道別有趣味的景觀,在水系發達的浙江,面積4492畝的魚塘中,水下可以養魚,水上可以通過光伏發電,」專題片段。
在天然資源稀缺的甘肅敦煌,唯一不缺的就是陽光,這裡全年日照時數達到3千多個小時,採集陽光的奧秘在於這些鏡子,每一面115平米的巨大鏡子,更有1525個,它們環繞著一座高138米的集熱裝置,組成這座光熱電站 ,電站平均一天運行8小時,當日照強度達到發電標準時,工程師通過調整鏡子的角度,將陽光反射,聚焦到塔頂的集熱器上。
「要起機就必須要預熱,預熱到兩三百度的時候,熔鹽才打上去,」敦煌光熱電站副總指揮黃文博。
聚集的陽光能形成超過1千度的高溫,集熱器將熱量傳遞到塔下5800噸的熔鹽中,用水冷卻熔鹽的過程中,產生大量蒸氣,推動汽輪機產生電力,2016年底敦煌10兆瓦光熱電站正式發電並網,它每年可以為三萬戶家庭提供100%的清潔電力,除了利用陽光,風力,水力發電以外,科學家們更熱衷於探索收集自然能量的方法,這是當下尋求清潔能源最可行的途徑,「奈米是一種長度單位,1奈米相當於10個原子的長度,2012年,他成功地在奈米尺度下,通過摩擦,將機械能轉化為電能,王中林認為若能將這些能量,通過奈米發電機收集起來,就能在一些特殊領域為自身提供能源供給,這是一款球形摩擦奈米發電機,在電機上模擬波浪運動,奈米發電機能得到電流電壓反應,許亮想知道它在真正波浪環境中的表現,」奈米發電機的發明者王中林。
「現在我們單個球能夠達到的,峰值功率是一個毫瓦 ,如果成千上萬個小球連接起來,這個輸出的功率就非常可觀了,」中科院北京奈米能源與系統研究所研究員許亮。
「由16個奈米球連接起來的方陣,可以輕鬆地點亮一排小燈,根據測算如果組成深度10米,面積有山東省大小的三維(3D)陣列,將能夠發出滿足當下地球人,日常使用的所有能量,」專題片段。
「這就是我們從小能源走向大能源的一個夢想,那麼這個如果說做成功的話,可以說在某種程度來說,能夠改變我們過去獲取能源的根本的途徑,」中科院北京奈米能源與系統研究所所長王中林。
中國已經是世界上最大的替代能源,如太陽能,風能和水電等投資國,根據英國獨立報報導,為了改善全國空氣質量,中國政府將在2020年前,至少向清潔能源項目投入3600億美元,新增1300萬個可再生能源領域的就業崗位,而這依靠的正是一個個中國科學家們,奇思妙想的實際嘗試,才讓人們擁抱一個充滿動力的未來。
更多內容,請看影片連結:https://www.youtube.com/channel/UCiwt1aanVMoPYUt_CQYCPQg
「指標陣列長度」的推薦目錄:
- 關於指標陣列長度 在 文茜的世界周報 Sisy's World News Facebook 的最佳貼文
- 關於指標陣列長度 在 紀老師程式教學網 Facebook 的最讚貼文
- 關於指標陣列長度 在 [問題] 指標陣列算size大小- 看板C_and_CPP - 批踢踢實業坊 的評價
- 關於指標陣列長度 在 【C 語言入門】19.5 - 用保留值標記陣列長度 - YouTube 的評價
- 關於指標陣列長度 在 [C語言] - 指標及多維陣列 - Ivan's Blog 的評價
- 關於指標陣列長度 在 可變大小的多維陣列 - 他山教程 的評價
- 關於指標陣列長度 在 [問題] C++ 陣列在呼叫函式中sizeof的值不一樣- 看板C_and_CPP 的評價
指標陣列長度 在 紀老師程式教學網 Facebook 的最讚貼文
[熱門文章] 程式設計、重構、與其它任何東西的終極問答
"The Ultimate Question of Programming, Refactoring, and Everything"
網頁版: http://goo.gl/6jIcIp
PDF 版: https://yadi.sk/i/pBZqebxsr5Wyg
#Craftmanships #SoftwareEngineering #CPP #Refactoring #ProgrammingSkills
好的!遲交比不交好,今天的推薦文來了(笑)~
今天介紹這篇,是過去一個禮拜在國外鄉民聚集地 Reddit 程式設計版瘋傳的文章。標題很臭屁「The Ultimate Question of Programming, Refactoring, and Everything」(沒錯!我就在意它最後一個字 "Everything"。咬我啊! XD)。因為轉載的人實在太多,讓我不禁努力地把它看完了。
其實這篇文章講的是 C/C++ 程式寫作者應該注意、或建議遵守的 42 個小訣竅。既不「Ultimate(終極)」,也不是涵蓋「Everthing」。不過裡面還是有不少中肯的建議,所以我還是將它介紹給大家。
為了讓英文苦手的朋友也能稍微感受一下這篇文章在講什麼,所以我不負責任地快速翻譯了每個標題一下。如果對哪個主題有興趣的,就麻煩大家直接對照標題號碼去看原文解說。原文有些標題用「戲謔」或「隱晦」寫法,我若直接翻譯,大家可能不知道原作者想表達什麼。所以我會將某些標題,用比較易懂的中文重新表達。一切以「標題編號(1~42)」為準。
接下來就請享用我這個不負責任的翻譯了。有會錯原文意思的,還請各位留言在下方、然後鞭小力一點 XD。我會馬上修正的:
1. 不要去做編譯器會做的事情
如:用迴圈能存取 a[0] ~ a[9],就不要用「拷貝貼上」a[0], a[1], a[2]..., a[9] 來存取裡面的內容值。
2. 大於 0 不代表它等於 1
若文件告訴你某函數執行成功會傳回「大於0」的值、但目前這個大於0的值是「1」。請你寫程式的時候不要自作聰明地偵測「傳回值 == 1」當成成功,請乖乖遵照規格書用「傳回值 > 0」等於成功。因為將來的版本有可能還會傳回 2, 3...等其他值。
3. 當你拷貝貼上一段程式碼,記得檢查它的副本兩遍
有時候你拷貝貼上一段程式碼,會忘了去修改裡面一些不同的小數字,導致花了大把時間去檢查錯誤到底出現在哪裡。
4. 小心使用「? :」運算子。並記得多加括號
「? :」是 C/C++ 內常用的運算子。若您寫了一段這樣的原始碼「a - b?0:1」,您可能以為它是這樣運作的「a - (b?0:1)」,事實上,它是這樣運作的「(a-b)?0:1」。結論是,多加括號保平安。
5. 多用市面上有的工具來分析您的原始碼
市面上有些工具,如:原始碼靜態分析工具、原始碼排列工具...可以幫您在把原始碼送入編譯器前,就抓到錯誤。不過作者也提到,別以為倚賴這些工具,錯誤就不會發生。真正要減少錯誤還是得靠多讀規格書,增加程式寫作經驗才辦得到。
6. 確認您所有的指標,都已經轉型成整數型態
作者擔心,某些使用 64 bits 當成指標變數寬度的系統,到 32 bits 的機器內重新編譯時,會產生高位元組被截斷的慘劇。某些編譯器提供「uintptr_t」這個專門給指標變數使用的型態,會隨著編譯器所在的環境,自動調整指標寬度。
7. 別在迴圈內呼叫「alloca()」這個函數
萬一迴圈失控,alloca() 函數會霸佔大量記憶體無法釋放。建議事先在迴圈外霸佔一大塊足夠的記憶體,然後在迴圈內慢慢蠶食之。
8. 在「解構函數(Destructor)」內使用「例外處理(Exception)」是很危險的!
作者認為,在負責釋放記憶體、收尾等工作的解構函數,還去霸佔新記憶體作事情是不好的。若真的發生例外(Exception),直接「吃掉(Supress)」不要讓它出現在使用者面前可能還比較好。
9. 若你要比對字串結尾,請用 '\0' 代表
有些程式設計師因為 '\0' 其實就是數字 0,而在比對字串結尾時,直接使用 0 來比對字串結尾。作者認為這個習慣不好。
10. 請勿濫用 # ifdef
# ifdef 很好用,但很容易讓原始碼雜亂難讀。作者不會建議大家不要用,但他反對連可以用 if ~ else 解決的場合,都濫用 # ifdef。
11. 別把一堆運算子全都擠在同一列
多分成幾列,Debugger 可以比較容易指出發生錯誤的是在哪個環節。
12. 當你「拷貝貼上」程式碼時,特別注意「最後一列效應」
作者還是不太建議濫用拷貝貼上,他認為需要重複使用一段程式碼,不如好好考慮寫成稍有彈性的函數,然後重複叫用。此外,他建議大家去看「最後一列效應」這篇文章(連結在本文),並了解最後一列效應在拷貝貼上程式碼內,所扮演的角色。
13. 程式碼若很長,盡量多折幾列,然後排成像表格般一樣整齊(Table-style)
14. 好編譯器 + 好的寫碼習慣是不夠的
內文舉了個後括號「)」括錯位置,但編譯器抓不出來的例子。
15. 若有一堆意義相關的常數,請用 enum 括住它們
16. 「看我能把程式碼寫得這麼屌!」的炫耀寫碼心態不可取
寫程式碼要以「穩」「易讀」為主,不是把一些剛學不久,覺得很酷,但三個月後會忘個精光的技術用進程式碼內。
17. 想用程式碼把一塊資料清乾淨,最好把清除程式碼獨立拉出來成一個專屬函數
18. 你在一個語言行得通的方法,在另一個語言不一定行得通
19. 盡量用技巧避免在同一個類別內,建構函數彼此呼叫的情況
20. 讀檔時,只檢查有沒有讀到檔尾(EOF)似乎是不夠的
21. 正確檢查 EOF 的方法
22. 有比使用 # pragma warning(...) 來印錯誤訊息更好的方法,勿濫用
23. 如果你想取得字串長度,用函數自動幫你算,別用手算然後硬填數字上去
24. 請多使用 "override" 與 "final",它們會是你的好朋友
25. 別再把 "this" 指標跟 "nullptr"(空指標)拿來作比較
26. 小心使用 VARIANT_BOOL 這個陰險狡猾的東西
27. BSTR(Binary STRing)這個用於微軟 COM/Automation 技術中的資料型態,請小心使用
28. 能用函數把一段程式碼包起來重複用,就別用巨集包它(使用巨集函數的缺點多於優點)
29. 在迴圈或迭代程式碼間,使用 ++i,來取代 i++(i++ 編譯後的執行效能稍微差那麼一點)
30. wprintf() 函數的使用陷阱:Win32 印寬字元字串要用 %S(大寫),Win64 要用 %s(小寫)。
31. 陣列在 C/C++ 傳給函數時,並非是「傳值呼叫」(Call by Value)
32. 要把檔案內的文字直接印在螢幕上時,請不要直接使用 printf() (怕檔案內夾雜 % 開頭的字,這些字對 printf 是有特殊意義的)
33. 想對一個指標取值(亦即:*p),記得檢查它是否為 NULL。否則你對 NULL 取值會導致系統出錯的
34. 別以為 int 的上限 21億+ 很多,在 64 bits 系統中,這個數字很容易爆掉
35. 若您把 enum 常數與 switch~case 連用,增加新元素進 enum 時也別忘了加新 case 進 switch
36. 如果有怎麼抓都抓不出來的 bugs,記得往「記憶體」的方向去思考(32bits vs. 64bits 之類的問題)
37. 在 do~while() 內用 continue 指令要小心,有可能會跳過你放在底部的「更新條件」,導致無窮迴圈
38. 對於指標,請用 nullptr 代替 NULL,這是新的 C++ 規格書希望您遵循的
39. 試著別把一列式子搞得太複雜,這樣比較不會有「咦?為何這段寫錯的程式碼居然可以運作」的問題出現
40. 開始使用「原始碼靜態分析工具」吧!
41. 別為了要使用某函式庫的一個函式,而引進整個函式庫。如果只用了一個函式,建議自己寫比較容易維護。
42. 別再用 empty 這個曖昧的字眼當函數名稱了。用 erase(), clear() 都比 empty() 好。
如果您覺得小弟翻譯了這麼多,沒有功勞也有苦勞,那就麻煩按個讚犒賞小弟一下吧!當然歡迎轉發給您 Facebook 的朋友共同討論。最後提醒一句,上述 42 點別把它們全都當聖旨,親身體會驗證才是最重要的喔!
祝福大家假期愉快!
指標陣列長度 在 【C 語言入門】19.5 - 用保留值標記陣列長度 - YouTube 的推薦與評價
【C 語言入門】19.5 - 用保留值標記陣列長度. 9,655 views9.6K views. Apr 30, 2017 ... 【C 語言 ... ... <看更多>
指標陣列長度 在 [C語言] - 指標及多維陣列 - Ivan's Blog 的推薦與評價
指標 及一維陣列在不少的書籍,我們都可以看到可以把陣列看成指標, ... 的陣列代表的是有一個大小3的陣列裡面有大小2的陣列,共6個,參考下圖即可清楚 ... ... <看更多>
指標陣列長度 在 [問題] 指標陣列算size大小- 看板C_and_CPP - 批踢踢實業坊 的推薦與評價
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
怎麼算出char *keytab[]的大小
題目原文:
char *keytab[]={"break","case","char","continue","default","for","if","int"};
char **p=keytab;
please use sizeof operator to decide the number of element of keytab
array and define it as NKEYS.
希望得到的正確結果:
36 因為我想說 break case char continue default for if int
這些字元一共有36個
所以我猜答案是36
程式跑出來的錯誤結果:
32
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
Dev-C++ Windows
有問題的code: (請善用置底文標色功能)
#include <iostream>//III
using namespace std;
int main()
{
char *keytab[]={"break","case","char","continue","default","for","if","int"};
char **p=keytab;
for (int i=0; i<8 ;i++)
{
cout<<keytab[i]<<endl;
}
int NKEYS;
NKEYS = sizeof(keytab)/sizeof(char);
cout<<NKEYS;
cout<<sizeof(keytab); //32
system("pause");
return 0;
}
補充說明:
我知道 sizeof(keytab); 是算出8個指標 8X4=32的意思
請問要怎麼用sizeof 去算出 一共使用了36個字元呢????
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.39.115
... <看更多>