㈠ 我國編程語言倉頡首發,以後是否就不會用英文寫代碼了
我國編程語言倉頡首發,以後肯定就不會用英文寫代碼了,只要開發工具和編譯器可以准確解析編譯中文關鍵字,就可以研發出來的,這只不過是需要一個時間和過程而已,讓我們拭目以待吧!
為了讓中國用上自己的漢字編程,華為發布鴻蒙編程語言『倉頡』,用漢字編程語言。那麼以「倉頡」命名,主要因為中國方塊字、象形字創造者是「倉頡」,有很多人因為這個名字對這門編程語言進行推測的,認為很有可能是純漢字和純中文的編程,假如真的是全漢字,就會解決對很多英語並不熟練的認識。又想入門編程的需求,也有人推測真的是漢字編程,那肯定使用華為方舟編譯器來進行的中文字元的編譯。
4,中文編程語言是封閉的,絕對不是華為世界級高科技公司的主要選擇,與華為愛國與否根本沒有必然聯系,更與我們國家持續加大改革,開放力度和構建人類命運共同體趨勢不合拍!
我以為以上的言論不足以為道,當然還有不同的觀點。但很多人都人認為:我國編程語言倉頡首發,以後就不會用英文寫代碼了。最後我用一個網友的發表的評論作為結束語吧!編程只是用關鍵字遵循一定格式,組織邏輯,為什麼不能用中文?只要開發工具和編譯器可以准確解析編譯中文關鍵字,各種符號和格式,最終解析出來的還是機器碼!為什麼不能用中文?
㈡ 程序員的數學-讀書筆記
計數法分為 按位計數法 和 羅馬計數法
按位計數法常用的有2進制、8進制、10進制、16進制等幾種。
理論上多少進制在數學上都可以存在,瑪雅人用20進制,巴比倫人用10進制和60進制的混合計數法。瑪雅人20進制可能是和手腳趾加起來的數量有關。巴比倫人採用60進制也可能是因為記錄數字的黏土版比較難記錄文字記號,為了在大數的書寫上少佔位便採用了60進制。
從這一點來看,環境對文明和文化的形成真的是有決定性的影響。假如巴比倫人掌握了造紙術或者在竹子上書寫文字的話,60進制這種違反人類天性的計數方法一定不會出現。話說,漢莫拉比法典就是寫在黑色的玄武岩上的。能夠記錄的文字也就屈指可數吧。
作者提到了其實人也是可以採用2進制計數法的,可是同樣大小的數字用2進制書寫起來位數太多,一來書寫不方便,二來計算時易發生馬虎出現錯誤。而10進制的數天生就是順應人類人性的,即使是幼兒也可以通過數手指頭的方式來計數。
相反對於計算機的物理構造來講,0代表開關斷開,1代表開關連接,這種二極體的物理限制正好決定了計算機較為適用2進制。不過如果你想做出一個10進制的計算機也不是沒有可能的。
這一章比較有趣的是羅馬計數法,我以前也沒有接觸過超過20的羅馬數字,也不知道羅馬數字各個數位上的數字相加之和為數字本身所代表的量。例如:
反觀阿拉伯數字
由此引發作者在兩個程序領域上的思考:
關鍵詞:真值表、文氏圖、邏輯表達式、卡諾圖、三值邏輯、完整性、排他性
- 能夠判斷對錯的陳述句叫做命題(proposition)
邏輯非 --不是A
逆命題
逆否命題
德摩根定律
卡諾圖 (二燈游戲、三燈游戲引出)
未定義邏輯(undefined)
三值邏輯的德摩根定律
本章探討的是通過余數來解決存在規律、周期性的問題。通過規律和周期性的重復,將大問題簡化成容易解決的小問題。
首先作者通過解決星期幾問題,引入了余數的思考概念。
上面的問題在 大問題通過余數規律簡化為小問題 這個方法上表現的還不明顯,於是引入了第三個問題:1234567^7654321的個位數是多少。
以上三個問題是小學奧賽便涉及到的問題,然而其思想在解決真實面對的復雜問題或具象的實際問題時卻很好用。
將一個數字除以2,他的余數應該為0或者1二者之一。我們也可以叫 奇偶問題 。
書中有幾個案例:
這樣分析過來就很好解決七橋問題,確定每個點所連接的橋的點數,與上述結論做對比。
A點為3,B點為,C點為3,D點為3.
由此可以得出七橋問題不可能實現。這個問題的解決也是通過奇偶性來解決的。
作者舉了高斯求和的故事來講如何用數學歸納法來解決無窮數列的求和問題。
兩個小例子便是從0開始到N的和,以及1開始的奇數和。
數學歸納法 是證明[ 有關整數的斷言對於0以上的所有整數(0,1,2...)是否成立 ]所用的方法。
證明方法歸結為兩歩:
根據上述方法,假若某個假設成立,那麼P(0)成立,因為P(0)成立,所以P(0+1)即P(1)也成立。反復如此,對於無窮數列遵守這個規律的證明,就像多米諾骨牌,推到第一個,後面的都會按照第一個的規則倒下去。
然而要避免整個證明出錯,就要重視第二個步驟,也就是歸納。歸納在證明時一定要考慮 是否在所有定義條件下均成立 ,尤其要注意的是在P(0)的條件下是否實現。
課後對話很有意思:
計數是人類每天生活都要運用的方法。
計數的關鍵就在於 注意「遺漏」和「重復」
例如:
綜上,在計數時要發現事物的規則。
要 認清計數對象的本質
要 認清計數對象的本質
要 認清計數對象的本質
重要的事情說三遍。
將計數對象進行 歸納總結 ,使其作為普通規則來掌握。這樣一般不容易出錯。
接下來,作者在 加法法則 里寫到:
乘法法則 的概念比較有意思。
接下來,本章提到了置換、排列、組合3個概念。以下是幾個小例子。
最後提到的 重復組合 里的思考問題比較有趣。
解答的思想是:
這是一種典型的將復雜問題簡單化,並規律化的解答方法。
最後還是要強調下:
要 認清計數對象的本質
遞歸與歸納的區別
歸納(inctive) 是從個別性前提推出一般性結論。
本質上都是 將復雜問題簡化 ,但方向不同。
個人理解是
遞歸是發現第n項和前一兩項之間的關系,實證確定後,往回不斷遞推的一種個別性結論。
即這個結論不是在n為任何自然數時都成立的。需要注意n為0和1的兩項。
通過遞歸解決問題的線路是: 找到遞歸結構——建立遞推公式——找到解析式(只帶n的式子) ,如果不能以解析式的方式描述遞歸結構,也可以用遞推公式的方法描述。如下圖所示的漢諾塔的遞推公式:(它也可以描述成解析式的方式)
歸納所謂的個別性前提是指
斐波那契數列就是運用了遞歸的思想。通過研究和思考復雜問題,抓住事務本質,得到f(n)=f(n-1)+f(n-2)
所以當我們想要用遞歸的方法解決問題時,注意思考第n元素與前後元素的關系。由一個點推開,成一條貫穿始終的線。
利用帕斯卡三角形來研究Cnk=Cn-1(k-1) + Cn-1k的思考方式另闢蹊徑。將兩個加數假設成組合問題里含一個元素和不含那個元素的兩個情況。從而證明了式子。利用的便是組合的數學分析法。(這句話組合的意思不是數學意義上的)。
所以以上將復雜問題簡化的方法是遞歸解法之一,是為了在復雜問題中找到隱含的遞歸結構。其思路是:
通過思考一張1mm的紙,折多少次能夠有地月距離那麼厚,作者引出指數的概念。
這一章的內容比較簡單,對於 指數爆炸 大家應該都不陌生。而 對數 估計也很熟悉。之前接觸到的漢諾塔問題的解析式和斐波那契數列都屬於指數的范疇。
然而在解決 測試所有設定選項的程序時,檢查次數也是一個指數問題 。所以我們應該如何輕松的解決這類問題呢?
利用二分法查找
利用二分法,先詢問最中間的人,如果在左邊,就繼續在左邊的范圍內重復此項方法,直到找到罪犯。這便被稱為 2分法 。他和漢諾塔的解析式如出一轍,可以利用指數原理經過很少的步驟便可找到目標。
二分法本身也是 遞歸結構 ,經過n次詢問,可以在2^n-1人中確定目標。每判斷一次就可以查找近一半的對象。
二分法需要注意的是,所有元素一定要 按順序排列 ,這點至關重要。
指數思想也被用於加密的實現中。因為每多加密一位,暴力破解就需要指數次的運算能力的提升。原則上有限時間里根本不可能破解。指數以其數字的巨大增長能力在加密領域有基本性的作用。
對於指數問題的解決方法,主要有4種,但均不太容易應付規模大的數字。
作為指數函數的逆函數,文章涉及了對數。同時也簡單介紹了古代科學家用過的計算尺。
無窮可以分為 可數無窮 和 不可數無窮 。
所謂 可數無窮 是指 可以按照一定的規律或者表達方式來表達 。
即集合中所有元素都與正整數一一對應。如果每一個元素都可以與1.2.3....等數字對應,也就是說可以按規律表達出來就是可數無窮。
例如:
所以有不可數的集合嗎?
此時運用到了 對角論證法 和 反證法(也叫歸謬法)
假設我們要證明 所有整數數列的集合是不可數的 ,那麼反證就是 假設所有整數數列的集合是可數的 ,此處是運用的反證法。
現在我們按下圖的方式來列出所有整數數列,編號為k的整數列在表的k行。
如果按照圖中第k行的第k個元素ak單獨組出一組數列{a1,a2,a3......}的話,他也是應該包含在所有整數數列里的,然而並沒有,他是游離在所有整數數列之外的。此處得出矛盾,說明命題錯誤,命題 所有整數數列的集合是不可數的 為真。此方法被稱為 對角論證法
除此之外
-所有實數的集合是不可數的
-所有函數的集合也是不可數的
隨後書中討論到了不可解的問題
對於不可解的問題的定義是
事實上,不能寫成程序的函數是存在的。
有些函數不能用文字表達,而且要寫成程序的函數必須 嚴謹定義確切和文字表達 兩個概念。
停機問題
不可解問題的一例。定義是
有限時間並不指時間長短,而是指無論耗時多長,只要能有終止的一刻就好。
事實上,程序本身並不能判斷某一程序是否可以在有限時間內結束運行
所以停機問題也是 不可解問題 之一。
這一章是對之前8章的回顧和總結。
前幾章作者分別對 0的意義、邏輯、余數、數學歸納、排列組合、遞歸、指數爆炸、不可解問題 進行了簡單的介紹和探討。其實所有的章節最後都是在引領讀者產生如何解決問題的思考。
1.認清模式,進行抽象化
2.由不擅長催生出的智慧
3.幻想法則
本書比較適合作為第一本接觸演算法的書籍。目前開始在上 Khan的Algorithms ,9月份跟上 coursera的Algorithms Part I 的開課。
前方的路註定不好走,但是要慢慢嘗試和堅持。
㈢ 北京大學哪些專業畢業之後不愁找工作
現就讀與北京大學一個就業相當困難的院系,但是還是硬著頭皮,以及強忍著對其他專業的羨慕回答一下這道題。(不推薦自己的專業啊,自己的專業是科研導向的,不是就業導向的,就不說了)
1、醫學院
職業發展路徑還是挺清晰的,本科→研究生→醫院,基本上只要自己對醫生這個職業沒有太大的排斥,學習努力,專業能力過得去,絕對是不愁找工作的,只是年輕的時候可能會比較累一些,但醫生社會地位真的是挺高的。
㈣ 電腦算命到底准不準呀
我在知道裡面提問的時候人家給我推薦的博客里剛好又這么一篇文章講電腦算命的事情的,我感覺說的非常好,在這里轉發一下吧!
============================================
江南易林 - 人腦算命與電腦算命誰更准確
(雙擊滾屏,單擊停止)作者:江南易林 提交日期:2007-3-20 22:27:00 | 分類: | 訪問量:65
人腦算命與電腦算命誰更准確
原創作者:江南易林 Email:[email protected]日期:2007年3月20日
江南易林博客: http://easylin.tianyablog.com
轉發江南易林文章請務必註明「原創作者:江南易林」字樣
隨著計算機和網路的普及,越來越多的人可以很方便的上網了。那些相信並且喜歡周易和算命的朋友可能會經常會聽到一個詞語:電腦算命。
似乎有很多做生意的人都喜歡把自己的生意與電腦掛鉤,好像什麼東西一同電腦扯上點關系就算是高科技了一樣,比如電腦洗車,電腦噴漆,電腦乾洗等等比比皆是,其實這裡面很多炒作成分。
現在我來詳細探討一下人腦算命與電腦算命的差別和准確性問題。
電腦的特點是運算很快,存儲容量大,處理那些重復性的繁瑣的任務得心應手。比如我們發簡訊,從基站(j經過空中介面)到交換機再到簡訊中心,要經過很多程序軟體的處理,像中國移動中國聯通這樣的大運營商,一天的簡訊量數以億計,如果是人工來處理是完全不可能的。(原創作者:江南易林)
程序能夠處理復雜的任務,但是它的「智商」遠遠不如人類的大腦,人工智慧也遠不如人的大腦能力。程序要干一個活兒,你必須告訴它每一步如何做,如果是計算性的問題,你必須告訴它每一步的公式。換句話說,你事先必須設計好如何如何做,電腦只能照章辦事。(原創作者:江南易林)
那麼電腦程序是如何推算人的八字的呢?
開發程序的人必須先定義好各種規則,每種規則對應一條或者幾條斷語。電腦按照公式或者從資料庫中生成一個人的八字之後,它就開始分析八字,把八字中的天乾地支逐條的與規則庫中的規則進行匹配,一旦匹配到一條規則就列印這條規則對應的斷語。
這樣說似乎很抽象,讓我來舉一個很形象的例子。假設我們要編寫一個用中醫來診斷人疾病的程序。大家知道中醫診斷的訣竅是「望聞問切」,但是這些很難量化,很難總結成公式。這很像八字,每個八字的情形都不一樣,日干(就是說八字)是旺還是衰,很難定量,八字的喜忌情況也很微妙,很難有什麼公式。但是計算機程序卻不管這些,你既然想要讓它來給人診病,你就必須為它定量,你可能會制定以下規則(規則是我隨便編的可能不合醫理,僅供舉例用):
1. 眼睛發黃的人有肝病。(原創作者:江南易林)
2. 每天的尿超過2000毫升的人膀胱不好
3. 臉色紅潤的人身體健康。
4. 體重超過180斤,有脂肪肝。
5. 心率小於50,身體完全健康。
等等。
有了這些規則,電腦開始根據輸入的照片和數據,一條條來匹配規則。如果它發現這個人體重大於180斤,它馬上輸出一條斷語 「此人有脂肪肝」,如果再發現該人每天的尿為2100毫升,於是屁顛屁顛的列印一句 「該人膀胱不好」。
如果這人正好的確膀胱不好,他可能會驚訝的豎起大拇指說道:電腦算命,神了!真准!但是你想過沒有,很多時候,用電腦算命會得出絕然相反的結論。
比如,一個人的尿的確很多,同時心率小於50,電腦可能有兩條斷語:一條說人家膀胱不好,一條說人家身體完全健康。但實際上這個人很可能是個運動員,每天運動量大,喝的水多,尿當然也多了。(原創作者:江南易林)
電腦推算八字與這個例子幾乎完全相似,程序看到一個規則就來一條斷語,不會像人一樣綜合分析,更別說象人一樣根據經驗來聯想,或者靈活機動的全盤分析,或者突然來一個靈感。它只能老老實實按照設計程序的人實現設計好的規則來匹配。寫這個算命程序的人的八字水平首先值得懷疑。實際上既精通電腦又精通八字的人並不多。
但是,盡管電腦算命很笨拙,很機械,准確率不高(基本上只能碰對一些非常典型的情況),但是電腦算命程序對算命者(注意是對算命者,對於那些不懂八字算命的人,就不能指望利用它了)而言,還是很有作用的:
1. 電腦程序可以幫算命者排八字盤。如果讓我們手工去排八字(包括推算十神、神煞、大運、流年等等),不僅費時費力還容易出錯。這部分工作完全可以交給計算機來做。
2. 很多需要死記的東西可以讓電腦來記,比如很多斷語。事先存到電腦中,方便算命者需要的時候查閱。
3. 電腦中可以嵌套各種電子書籍和工具。比如,電腦程序中可以包含一個萬年歷,包含各種八字書,查閱起來很方便。
可能還有其他好處,就不一一列舉了。(原創作者:江南易林)
需要說明的是,如果開發設計程序的人既精通八字又精通程序設計,並且很重要的,還精通形式語言、人工智慧和機器學習等理論的話,那麼他開發出來的程序可能就比一般的程序聰明多了。但是即便是這樣的程序得出來的結論還是需要人工修正的,正確性還是有限。並且,這種人才實在鳳毛麟角。大家都知道,前幾年炒作的下國際象棋下贏了國際大師的「深藍」,那可是大型的人工智慧超級計算機,記錄了大量的超級大師的棋譜,但是國際象棋畢竟變數少,如果是下圍棋,在相當長一段時間內,電腦是不可能下過人腦的。(原創作者:江南易林)
一句話,人腦才是真正的萬能。人的思維的速度比計算機快多了。人的大腦真正得到開發利用的只是人的腦容量中很小的一部分,即便如此,人腦還是遠勝於電腦,尤其是在那些涉及到需要創造創新的事情,電腦是不會去發明一個什麼東西的。它只能按照既定的規則和輸入信息來輸出一定的結果。
所以大家以後在網上算命或者發簡訊算命,偶爾遇到電腦程序碰巧算對了一兩條,你最好不要驚奇的大喊「電腦算命真神真准!」,千萬不要一個大活人被程序忽悠了。
順便再用我以前提過的反證法證明一下(這個方法希望大家平時多思考多用),如果這個算命程序真的很准,那麼寫這個程序人的何必要以幾十塊錢的價格把程序賣給你?難道他是白痴? (如果他是白痴,寫的程序肯定是垃圾)難道他自己不會用他的程序來算命?或者如果它真准,你買來這個程序去幫人算命,那你豈不是發大財了?
所以,對於電腦算命,不要太執著,不要太認真,權當作游戲娛樂罷了。(原創作者:江南易林)