日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
程序員的數(shù)學(xué)圖書
人氣:60

程序員的數(shù)學(xué)

一本為程序員朋友們寫的數(shù)學(xué) 書感受數(shù)學(xué)之美 活躍你的數(shù)學(xué)思維 程序員修煉之道

內(nèi)容簡(jiǎn)介

編程的基礎(chǔ)是計(jì)算機(jī)科學(xué),而計(jì)算機(jī)科學(xué)的基礎(chǔ)是數(shù)學(xué)。因此,學(xué)習(xí)數(shù)學(xué)有助于鞏固編程的基礎(chǔ),寫出更健壯的程序。

本書面向程序員介紹了編程中常用的數(shù)學(xué)知識(shí),借以培養(yǎng)初級(jí)程序員的數(shù)學(xué)思維。讀者無需精通編程,也無需精通數(shù)學(xué),只需具備四則運(yùn)算和乘方等基礎(chǔ)知識(shí),就可以閱讀本書。

書中講解了二進(jìn)制計(jì)數(shù)法、邏輯、余數(shù)、排列組合、遞歸、指數(shù)爆炸、不可解問題等許多與編程密切相關(guān)的數(shù)學(xué)方法,分析了哥尼斯堡七橋問題、少年高斯求和方法、漢諾塔、斐波那契數(shù)列等經(jīng)典問題和算法。引導(dǎo)讀者深入理解編程中的數(shù)學(xué)方法和思路。

本書還對(duì)程序員和計(jì)算機(jī)的分工進(jìn)行了有益的探討。讀完此書,你會(huì)對(duì)以程序?yàn)槊浇榈娜藱C(jī)合作有更深刻的理解。

編輯推薦

如果數(shù)學(xué)不好,是否可以成為一名程序員呢?答案是肯定的。 《程序員的數(shù)學(xué)》適合:數(shù)學(xué)糟糕但又想學(xué)習(xí)編程的你

沒有晦澀的公式,只有好玩的數(shù)學(xué)題。

幫你掌握編程所需的“數(shù)學(xué)思維”。

日文版已重印14次!

作者簡(jiǎn)介

結(jié)城浩(Hiroshi Yuki)

生于1963年,日本博學(xué)技術(shù)作家和程序員。在編程語言、設(shè)計(jì)模式、數(shù)學(xué)、加密技術(shù)等領(lǐng)域,編寫了很多深受歡迎的入門書。代表作有《數(shù)學(xué)女孩》系列、《程序員的數(shù)學(xué)》等。

作者網(wǎng)站www.hyuki.com/

譯者簡(jiǎn)介:

管杰

畢業(yè)于復(fù)旦大學(xué)日語系。現(xiàn)為對(duì)日軟件工程師,多年日語技術(shù)文檔編寫經(jīng)驗(yàn)。愛好日漢翻譯和日本文化史,譯有《明解C語言:入門篇》等。

目錄

目錄

第1章 0的故事——無即是有

本章學(xué)習(xí)內(nèi)容 2

小學(xué)一年級(jí)的回憶 2

10進(jìn)制計(jì)數(shù)法 3

什么是10進(jìn)制計(jì)數(shù)法 3

分解2503 3

2進(jìn)制計(jì)數(shù)法 4

什么是2進(jìn)制計(jì)數(shù)法 4

分解1100 5

基數(shù)轉(zhuǎn)換 6

計(jì)算機(jī)中為什么采用2進(jìn)制計(jì)數(shù)法 8

按位計(jì)數(shù)法 10

什么是按位計(jì)數(shù)法 10

不使用按位計(jì)數(shù)法的羅馬數(shù)字 11

指數(shù)法則 12

10的0次方是什么 12

10-1是什么 13

規(guī)則的擴(kuò)展 14

對(duì)20進(jìn)行思考 14

2-1是什么 15

0所起的作用 16

0的作用:占位 16

0的作用:統(tǒng)一標(biāo)準(zhǔn),簡(jiǎn)化規(guī)則 16

日常生活中的0 17

人類的極限和構(gòu)造的發(fā)現(xiàn) 18

重溫歷史進(jìn)程 18

為了超越人類的極限 19

本章小結(jié) 20

第2章 邏輯——真與假的二元世界

本章學(xué)習(xí)內(nèi)容 22

為何邏輯如此重要 22

邏輯是消除歧義的工具 22

致對(duì)邏輯持否定意見的讀者 23

乘車費(fèi)用問題——兼顧完整性和排他性 23

車費(fèi)規(guī)則 23

命題及其真假 24

有沒有“遺漏” 24

有沒有“重復(fù)” 25

畫一根數(shù)軸輔助思考 26

注意邊界值 28

兼顧完整性和排他性 28

使用if語句分解問題 28

邏輯的基本是兩個(gè)分支 29

建立復(fù)雜命題 30

邏輯非——不是A 30

邏輯與——A并且B 32

邏輯或——A或者B 34

異或——A或者B(但不都滿足) 37

相等——A和B等 39

蘊(yùn)涵——若A則B 40

囊括所有了嗎 45

德 摩根定律 46

德 摩根定律是什么 46

對(duì)偶性 47

卡諾圖 48

二燈游戲 48

首先借助邏輯表達(dá)式進(jìn)行思考 49

學(xué)習(xí)使用卡諾圖 50

三燈游戲 52

包含未定義的邏輯 54

帶條件的邏輯與(&&) 55

帶條件的邏輯或(||) 57

三值邏輯中的否定(!) 58

三值邏輯的德?摩根定律 58

囊括所有了嗎 59

本章小結(jié) 60

第3章 余數(shù)——周期性和分組

本章學(xué)習(xí)內(nèi)容 64

星期數(shù)的思考題(1) 64

思考題(100天以后是星期幾) 64

思考題答案 64

運(yùn)用余數(shù)思考 65

余數(shù)的力量——將較大的數(shù)字除一次就能分組 65

星期數(shù)的思考題(2) 66

思考題(10100天以后是星期幾) 66

提示:可以直接計(jì)算嗎 67

思考題答案 67

發(fā)現(xiàn)規(guī)律 68

直觀地把握規(guī)律 68

乘方的思考題 70

思考題(1234567987654321) 70

提示:通過試算找出規(guī)律 70

思考題答案 70

回顧:規(guī)律和余數(shù)的關(guān)系 71

通過黑白棋通信 71

思考題 71

提示 73

思考題答案 73

奇偶校驗(yàn) 73

奇偶校驗(yàn)位將數(shù)字分為兩個(gè)集合 74

尋找戀人的思考題 74

思考題(尋找戀人) 74

提示:先試算較小的數(shù) 74

思考題答案 75

回顧 75

鋪設(shè)草席的思考題 77

思考題(在房間里鋪設(shè)草席) 77

提示:先計(jì)算一下草席數(shù) 77

思考題答案 78

回顧 78

一筆畫的思考題 79

思考題(哥尼斯堡七橋問題) 79

提示:試算一下 80

提示:考慮簡(jiǎn)化一下 81

提示:考慮入口和出口 82

思考題答案 82

奇偶校驗(yàn) 85

本章小結(jié) 86

第4章 數(shù)學(xué)歸納法——如何征服無窮數(shù)列

本章學(xué)習(xí)內(nèi)容 88

高斯求和 88

思考題(存錢罐里的錢) 88

思考一下 89

小高斯的解答 89

討論一下小高斯的解答 89

歸納 91

數(shù)學(xué)歸納法——如何征服無窮數(shù)列 91

0以上的整數(shù)的斷言 92

高斯的斷言 93

什么是數(shù)學(xué)歸納法 93

試著征服無窮數(shù)列 94

用數(shù)學(xué)歸納法證明高斯的斷言 95

求出奇數(shù)的和——數(shù)學(xué)歸納法實(shí)例 96

奇數(shù)的和 96

通過數(shù)學(xué)歸納法證明 97

圖形化說明 98

黑白棋思考題——錯(cuò)誤的數(shù)學(xué)歸納法 99

思考題(黑白棋子的顏色) 99

提示:不要為圖所惑 100

思考題答案 100

編程和數(shù)學(xué)歸納法 101

通過循環(huán)表示數(shù)學(xué)歸納法 101

循環(huán)不變式 103

本章小結(jié) 107

第5章 排列組合——解決計(jì)數(shù)問題的方法

本章學(xué)習(xí)內(nèi)容 110

計(jì)數(shù)——與整數(shù)的對(duì)應(yīng)關(guān)系 110

何謂計(jì)數(shù) 110

注意“遺漏”和“重復(fù)” 111

植樹問題——不要忘記0 111

植樹問題思考題 111

加法法則 115

加法法則 115

乘法法則 117

乘法法則 117

置換 121

置換 121

歸納一下 122

思考題(撲克牌的擺法) 123

排列 125

排列 125

歸納一下 126

樹形圖——能夠認(rèn)清本質(zhì)嗎 128

組合 130

組合 130

歸納一下 131

置換、排列、組合的關(guān)系 132

思考題練習(xí) 134

重復(fù)組合 134

也要善于運(yùn)用邏輯 136

本章小結(jié) 139

第6章 遞歸——自己定義自己

本章學(xué)習(xí)內(nèi)容 142

漢諾塔 142

思考題(漢諾塔) 142

提示:先從小漢諾塔著手 143

思考題答案 146

求出解析式 148

解出漢諾塔的程序 149

找出遞歸結(jié)構(gòu) 150

再談階乘 151

階乘的遞歸定義 152

思考題(和的定義) 153

遞歸和歸納 153

斐波那契數(shù)列 154

思考題(不斷繁殖的動(dòng)物) 154

斐波那契數(shù)列 157

帕斯卡三角形 159

什么是帕斯卡三角形 159

遞歸定義組合數(shù) 162

組合的數(shù)學(xué)理論解釋 163

遞歸圖形 165

以遞歸形式畫樹 165

實(shí)際作圖 166

謝爾平斯基三角形 167

本章小結(jié) 168

第7章 指數(shù)爆炸——如何解決復(fù)雜問題

本章學(xué)習(xí)內(nèi)容 172

什么是指數(shù)爆炸 172

思考題(折紙問題) 172

指數(shù)爆炸 175

倍數(shù)游戲——指數(shù)爆炸引發(fā)的難題 176

程序的設(shè)置選項(xiàng) 176

不能認(rèn)為是“有限的”就不假思索 178

二分法查找——利用指數(shù)爆炸進(jìn)行查找 178

尋找犯人的思考題 178

提示:先思考人數(shù)較少的情況 179

思考題答案 180

找出遞歸結(jié)構(gòu)以及遞推公式 181

二分法查找和指數(shù)爆炸 183

對(duì)數(shù)——掌握指數(shù)爆炸的工具 184

什么是對(duì)數(shù) 184

對(duì)數(shù)和乘方的關(guān)系 184

以2為底的對(duì)數(shù) 186

以2為底的對(duì)數(shù)練習(xí) 186

對(duì)數(shù)圖表 187

指數(shù)法則和對(duì)數(shù) 188

對(duì)數(shù)和計(jì)算尺 190

密碼——利用指數(shù)爆炸加密 193

暴力破解法 193

字長(zhǎng)和安全性的關(guān)系 193

如何處理指數(shù)爆炸 195

理解問題空間的大小 195

四種處理方法 195

本章小結(jié) 196

第8章 不可解問題——不可解的數(shù)、無法編寫的程序

本章學(xué)習(xí)內(nèi)容 200

反證法 200

什么是反證法 200

質(zhì)數(shù)思考題 202

反證法的注意事項(xiàng) 203

可數(shù) 203

什么是可數(shù) 203

可數(shù)集合的例子 204

有沒有不可數(shù)的集合 206

對(duì)角論證法 207

所有整數(shù)數(shù)列的集合是不可數(shù)的 207

所有實(shí)數(shù)的集合是不可數(shù)的 211

所有函數(shù)的集合也是不可數(shù)的 212

不可解問題 213

什么是不可解問題 213

存在不可解問題 214

思考題 215

停機(jī)問題 215

停機(jī) 216

處理程序的程序 217

什么是停機(jī)問題 217

停機(jī)問題的證明 219

寫給尚未理解的讀者 222

不可解問題有很多 223

本章小結(jié) 224

第9章 什么是程序員的數(shù)學(xué)——總結(jié)篇

本章學(xué)習(xí)內(nèi)容 226

何為解決問題 229

認(rèn)清模式,進(jìn)行抽象化 229

由不擅長(zhǎng)催生出的智慧 229

幻想法則 230

程序員的數(shù)學(xué) 231

在線預(yù)覽

CHAPTER1

第1章

0的故事

——無即是有

◎課前對(duì)話

老師:1,2,3的羅馬計(jì)數(shù)法是I,II,III。學(xué)生:加法很簡(jiǎn)單嘛。I II,只要將3個(gè)I并排寫就行了。老師:不過II III可不是IIIII,而是V喔!學(xué)生:啊,是這樣啊!老師:沒錯(cuò),如果數(shù)目變大,那數(shù)起來可就費(fèi)勁啦!

本章學(xué)習(xí)內(nèi)容

本章將學(xué)習(xí)有關(guān)“0”的內(nèi)容。

首先,介紹一下我們?nèi)祟愂褂玫?0進(jìn)制和計(jì)算機(jī)使用的2進(jìn)制,再講解按位計(jì)數(shù)法,一起來思考0所起的作用。乍一看,0僅僅是表示“什么都沒有”的意思,而實(shí)際上它具有創(chuàng)建模式、簡(jiǎn)化并總結(jié)規(guī)則的重要作用。

小學(xué)一年級(jí)的回憶

以下是小學(xué)一年級(jí)時(shí)發(fā)生的事,我依然記憶猶新。“下面請(qǐng)打開本子,寫一下‘十二’。”老師說道。于是,我翻開嶄新的本子,緊握住削尖了的鉛筆,寫下了這樣大大的數(shù)字。

老師走到我跟前,看到我的本子,面帶微笑親切地說:“寫得不對(duì)喔。應(yīng)該寫成12喔。”

當(dāng)時(shí)我是聽到老師說“十二”,才寫下了10和2。不過那樣是不對(duì)的。眾所周知,現(xiàn)在我們把“十二”寫作12。

而在羅馬數(shù)字中,“十二”寫作XII。X表示10,I表示1。II則表示兩個(gè)并排的1,即2。也就是說,XII是由X和II組成的。

如同“十二”可以寫作12和XII,數(shù)字有著各種各樣的計(jì)數(shù)法。12是阿拉伯?dāng)?shù)字的計(jì)數(shù)法,而XII是羅馬數(shù)字的計(jì)數(shù)法。無論采用哪種計(jì)數(shù)法,所表達(dá)的“數(shù)字本身”并無二致。下面我們就來介紹幾種計(jì)數(shù)法。

10進(jìn)制計(jì)數(shù)法

下面介紹10進(jìn)制計(jì)數(shù)法。

什么是10進(jìn)制計(jì)數(shù)法

我們平時(shí)使用的是10進(jìn)制計(jì)數(shù)法。

使用的數(shù)字有0、1、2、3、4、5、6、7、8、9共10種a。

數(shù)位有一定的意義,從右往左分別表示個(gè)位、十位、百位、千位……

以上規(guī)則在小學(xué)數(shù)學(xué)中都學(xué)到過,日常生活中也一直在用,是眾所周知的常識(shí)。在此權(quán)當(dāng)復(fù)習(xí),后面我們將通過實(shí)例來了解一下10進(jìn)制計(jì)數(shù)法。

分解2503

首先,我們以2503這個(gè)數(shù)為例。2503表示的是由2、5、0、3這4個(gè)數(shù)字組成的一個(gè)稱作2503的數(shù)。

這樣并排的數(shù)字,因數(shù)位不同而意義相異。

2表示“1000的個(gè)數(shù)”。

5表示“100的個(gè)數(shù)”。

0表示“10的個(gè)數(shù)”。

3表示“1的個(gè)數(shù)”。

a 這里的“種”指的是數(shù)字的種類,用來說明10進(jìn)制和2進(jìn)制中數(shù)字復(fù)雜程度的差異。如2561中包含四種數(shù)字,而1010中只包含兩種數(shù)字。——譯者注

綜上所述,2503這個(gè)數(shù)是2個(gè)1000、5個(gè)100、0個(gè)10和3個(gè)1累加的結(jié)果。用數(shù)字和語言來冗長(zhǎng)地說明有些無趣,下面就用圖示來表現(xiàn)。

2×1000 5×100 0×10 3×1

如圖,將數(shù)字的字體大小加以區(qū)別,各個(gè)數(shù)位上的數(shù)字2、5、0、3的意義便顯而易見了。1000是10×10×10,即10(310的3次方),(10的2次方)

100是10×10,即102。因此,也可以寫成如下形式(請(qǐng)注意箭頭所示部分)。

2×103

5×102

0×10 3×1

再則,10是101(10的1次方),1是100(10的0次方),所以還可以寫成如下形式。

2×103 5×102 0×101

3×100

千位、百位、十位、個(gè)位,分別可稱作103的位、102的位、101的位、100的位。10進(jìn)制計(jì)數(shù)法的數(shù)位全都是10n的形式。這個(gè)10稱作10進(jìn)制計(jì)數(shù)法的基數(shù)或底。基數(shù)10右上角的數(shù)字——指數(shù),是3、2、1、0這樣有規(guī)律地順次排列的,這點(diǎn)請(qǐng)記住。

3210

2×103 5×102 0×101 3×100

2進(jìn)制計(jì)數(shù)法

下面講解2進(jìn)制計(jì)數(shù)法。

什么是2進(jìn)制計(jì)數(shù)法

計(jì)算機(jī)在處理數(shù)據(jù)時(shí)使用的是2進(jìn)制計(jì)數(shù)法。從10進(jìn)制計(jì)數(shù)法類推,便可很快掌握它的規(guī)則。

??使用的數(shù)字只有0、1,共2種。

??從右往左分別表示1位、2位、4位、8位……

用2進(jìn)制計(jì)數(shù)法來數(shù)數(shù),首先是0,然后是1,接下去……不是2,而是在1上面進(jìn)位變成10,繼而是11,100,101……

表1-1展示了0到99的數(shù)的10進(jìn)制計(jì)數(shù)法和2進(jìn)制計(jì)數(shù)法。

0到99的數(shù)的10進(jìn)制計(jì)數(shù)法和2進(jìn)制計(jì)數(shù)法

分解1100

在此,我們以2進(jìn)制表示的1100(2進(jìn)制數(shù)的1100)為例來探其究竟。

和10進(jìn)制計(jì)數(shù)法一樣,并排的數(shù)字,各個(gè)數(shù)位都有不同的意義。從左往右依次為:

1表示“8的個(gè)數(shù)”。

1表示“4的個(gè)數(shù)”。

0表示“2的個(gè)數(shù)”。

0表示“1的個(gè)數(shù)”。

也就是說,2進(jìn)制的1100是1個(gè)8、1個(gè)4、0個(gè)2和0個(gè)1累加的結(jié)果。這里出現(xiàn)的8、4、2、1,分別表示23、22、21、20。即2進(jìn)制計(jì)數(shù)法的1100,表示如下意思。

3210

1×23 1×22 0×21 0×20

如此計(jì)算就能將2進(jìn)制計(jì)數(shù)法的1100轉(zhuǎn)換為10進(jìn)制計(jì)數(shù)法。

31×22 0×21 0×20

1×2 1×8 1×4 0×2 0×18 4 0 012

由此可以得出,2進(jìn)制的1100若用10進(jìn)制計(jì)數(shù)法來表示,則為12。

基數(shù)轉(zhuǎn)換

接下來我們?cè)囍鴮?0進(jìn)制的12轉(zhuǎn)換為2進(jìn)制。這需要將12反復(fù)地除以2(12除以2,商為6;6再除以2,商為3;3再除以2……),并觀察余數(shù)為“1”還是“0”。余數(shù)為0則表示“除完了”。隨后再將每步所得的余數(shù)的列(1和0的列)逆向排列,由此就得到2進(jìn)制表示了。

用2進(jìn)制表示12

同樣地,我們?cè)噷?0進(jìn)制的2503轉(zhuǎn)換為2進(jìn)制計(jì)數(shù)法。

我們從圖1-2可以知道2503用2進(jìn)制表示為100111000111。各個(gè)數(shù)位的權(quán)重如下:

1×211 0×210 0×29 1×28 1×27 1×26 0×25 0×24 0×23 1×22 1×21 1×20

在10進(jìn)制中,基數(shù)為10,各個(gè)數(shù)位是以10n的形式表現(xiàn)的。而2進(jìn)制中,基數(shù)為2,各個(gè)數(shù)位是以2n的形式表現(xiàn)的。從10進(jìn)制計(jì)數(shù)法轉(zhuǎn)換為2進(jìn)制計(jì)數(shù)法,稱作10進(jìn)制至2進(jìn)制的基數(shù)轉(zhuǎn)換。

計(jì)算機(jī)中為什么采用2進(jìn)制計(jì)數(shù)法

計(jì)算機(jī)中一般采用2進(jìn)制計(jì)數(shù)法,我們來思考一下原因。計(jì)算機(jī)在表示數(shù)的時(shí)候,會(huì)使用以下兩種狀態(tài)。

開關(guān)切斷狀態(tài)

開關(guān)連通狀態(tài)

雖說是開關(guān),但實(shí)際上并不需要機(jī)械部件,你可以想象成是由電路形成的“電子開關(guān)”。總之,它能夠形成兩種狀態(tài)。這兩種狀態(tài),分別對(duì)應(yīng)0和1這兩個(gè)數(shù)字。

… 0

… 1

1個(gè)開關(guān)可以用0或1來表示,如果有許多開關(guān),就可以表示為許多個(gè)0或1。你可以

想象這里排列著許多開關(guān),各個(gè)開關(guān)分別表示2進(jìn)制中的各個(gè)數(shù)位。這樣一來,只要增加

開關(guān)的個(gè)數(shù),不管是多大的數(shù)字都能表示出來。

當(dāng)然,做成能夠表示0~9這10種狀態(tài)的開關(guān),進(jìn)而讓計(jì)算機(jī)采用10進(jìn)制計(jì)數(shù)法,

這在理論上也是可能的。但是,與0和1的開關(guān)相比,必定有更為復(fù)雜的結(jié)構(gòu)。另外,請(qǐng)比較一下圖1-3和圖1-4所示的加法表。2進(jìn)制的表比10進(jìn)制的表簡(jiǎn)單得多吧。

若要做成1位加法的電路,采用2進(jìn)制要比10進(jìn)制更為簡(jiǎn)便。

不過,比起10進(jìn)制,2進(jìn)制的位數(shù)會(huì)增加許多,這是它的缺點(diǎn)。例如,在10進(jìn)制中

2503只有4位,而在2進(jìn)制中要表達(dá)同樣的數(shù)則需要100111000111共12位數(shù)字。這點(diǎn)從

表1-2中也顯而易見。

人們覺得10進(jìn)制比2進(jìn)制更容易處理,是因?yàn)?0進(jìn)制計(jì)數(shù)法的位數(shù)少,計(jì)算起來不

容易發(fā)生錯(cuò)誤。此外,比起2進(jìn)制,采用10進(jìn)制能夠簡(jiǎn)單地通過直覺判斷出數(shù)值的大小。

人的兩手加起來共有10個(gè)指頭,這也是10進(jìn)制更容易理解的原因之一。

10進(jìn)制的加法表

2進(jìn)制的加法表

不過,因?yàn)橛?jì)算機(jī)的計(jì)算速度非常快,位數(shù)再多也沒有關(guān)系。而且計(jì)算機(jī)不會(huì)像人類那樣發(fā)生計(jì)算錯(cuò)誤,不需要靠直覺把握數(shù)字的大小。對(duì)于計(jì)算機(jī)來說,處理的數(shù)字種類少、計(jì)算規(guī)則簡(jiǎn)單就好不過了。

讓我們來總結(jié)一下。

10進(jìn)制計(jì)數(shù)法中,位數(shù)少,但是數(shù)字的種類多。

→對(duì)人類來說,這種比較易用。

2進(jìn)制計(jì)數(shù)法中,數(shù)字的種類少,但是位數(shù)多。

→對(duì)計(jì)算機(jī)來說,這種比較易用。

鑒于上述原因,計(jì)算機(jī)采用了2進(jìn)制計(jì)數(shù)法。

人類使用10進(jìn)制計(jì)數(shù)法,而計(jì)算機(jī)使用2進(jìn)制計(jì)數(shù)法,因此計(jì)算機(jī)在執(zhí)行人類發(fā)出的任務(wù)時(shí),會(huì)進(jìn)行10進(jìn)制和2進(jìn)制間的轉(zhuǎn)換。計(jì)算機(jī)先將10進(jìn)制轉(zhuǎn)換為2進(jìn)制,用2進(jìn)制進(jìn)行計(jì)算,再將所得的2進(jìn)制計(jì)算結(jié)果轉(zhuǎn)換為10進(jìn)制。

人類使用計(jì)算機(jī)進(jìn)行計(jì)算的情形

轉(zhuǎn)換為2進(jìn)制

轉(zhuǎn)換為10進(jìn)制

10101 10011

使用2進(jìn)制進(jìn)行計(jì)算

101000

按位計(jì)數(shù)法

下面來介紹按位計(jì)數(shù)法。

什么是按位計(jì)數(shù)法

我們學(xué)習(xí)了10進(jìn)制和2進(jìn)制兩種計(jì)數(shù)法,這些方法一般稱作按位計(jì)數(shù)法。除了10進(jìn)制和2進(jìn)制以外,還有許多種類的按位計(jì)數(shù)法。在編程中,也常常使用8進(jìn)制和16進(jìn)制計(jì)數(shù)法。

●8進(jìn)制計(jì)數(shù)法

8進(jìn)制計(jì)數(shù)法的特征如下:

使用的數(shù)字有0、1、2、3、4、5、6、7共8種。

80的位、81的位、82的位、83的位……(基數(shù)是8)

21 19

40

●16進(jìn)制計(jì)數(shù)法

16進(jìn)制計(jì)數(shù)法的特征如下:

使用的數(shù)字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16種。

160的位、161的位、162的位、163的位……(基數(shù)是16)

在16進(jìn)制計(jì)數(shù)法中,使用A、B、C、D、E、F(有時(shí)也使用小寫字母a、b、c、d、e、

f)來表示10以上的數(shù)字。

●N進(jìn)制計(jì)數(shù)法

一般來說,N進(jìn)制計(jì)數(shù)法的特征如下:

使用的數(shù)字有0,1,2,3,…,N-1,共N種。

N0的位、N1的位、N2的位、N3的位……(基數(shù)是N)

例如,N進(jìn)制計(jì)數(shù)法中,4位數(shù)a3a2a1a0為

a3×N3 a2×N2 a1×N1 a0×N0(a3、a2、a1、a0是0~N-1中的數(shù)字。)

不使用按位計(jì)數(shù)法的羅馬數(shù)字

按位計(jì)數(shù)法在生活中最為常見,因此人們往往認(rèn)為這種方法是理所當(dāng)然的。實(shí)際上,

在我們身邊也有不使用按位計(jì)數(shù)法的例子。例如,羅馬計(jì)數(shù)法。羅馬數(shù)字至今還常常出現(xiàn)在鐘表表盤上。

使用羅馬數(shù)字的鐘表表盤

還有,在電影放映的演職員名單中,也會(huì)出現(xiàn)表示年號(hào)的MCMXCVIII等字母。這也是羅馬數(shù)字。羅馬計(jì)數(shù)法的特征如下:

數(shù)位沒有意義,只表示數(shù)字本身

使用I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000)來記數(shù)

將并排的數(shù)字加起來,就是所表示的數(shù)。

例如,3個(gè)并排的I(III)表示3,并排的V和I(VI)表示6,VIII表示8。羅馬數(shù)字的加法很簡(jiǎn)單,只要將羅馬數(shù)字并排寫就可以得到它們的和。比如,要計(jì)算1 2,只要將表示1的I和表示2的II并排寫作III就行了。但是,數(shù)字多了可就不太簡(jiǎn)單了。

例如,計(jì)算3 3并不是把III和III并排寫作IIIIII,而是將5單獨(dú)拿出來寫作V,所以6就應(yīng)該寫作VI。CXXIII(123)和LXXVIII(78)的加法,也不能僅僅并排寫作CXXIIILXXVIII,而必須將IIIII轉(zhuǎn)換為V,VV轉(zhuǎn)換為X,XXXXX轉(zhuǎn)換為L(zhǎng),再將LL轉(zhuǎn)換為C,如此整理得到CCI(201)。在“整理”羅馬數(shù)字的過程中,必須進(jìn)行與按位計(jì)數(shù)法的進(jìn)位相仿的計(jì)算。

羅馬計(jì)數(shù)法中還有“減法規(guī)則”。例如IV,在V的左側(cè)寫I,表示5-1,即4(在鐘表表盤上,由于歷史原因也有將4寫作IIII的)。讓我們?cè)囍鴮⒘_馬數(shù)字的MCMXCVIII用10進(jìn)制來表示。

MCMXCVIII=(M) (CM) (XC) (V) (III)=(1000) (1000-100) (1000-10) (5) (3)=1998

可以發(fā)現(xiàn),MCMXCVIII表示的就是1998。羅馬數(shù)字真是費(fèi)勁啊!

指數(shù)法則

10的0次方是什么

在10進(jìn)制的說明中,我們講過“1是100(10的0次方)”,即100=1。

也許有些讀者會(huì)產(chǎn)生以下疑問吧。

102是“2個(gè)10相乘”,那么100不就是“0個(gè)10相乘”嗎?這樣的話,不應(yīng)該是1,而是0吧?

這個(gè)問題的核心在哪里呢?我們來深入思考一下。問題在于“10n是n個(gè)10相乘”這部分。在說“n個(gè)10相乘”時(shí),我們自然而然會(huì)把n想作1,2,3…。因此,在說“0個(gè)10相乘”時(shí),卻不知道應(yīng)該如何正確理解它的意義。

那么,暫且拋卻“n個(gè)10相乘”這樣的定義方式吧。我們從目前掌握的知識(shí)來類推,看看如何定義100比較妥當(dāng)。

眾所周知,103是1000,102是100,101是10。

將這些等式放在一起,尋找它們的規(guī)律。

103=1000102=100101=10100=?

1??101??101??10

每當(dāng)10右上角的數(shù)字(指數(shù))減1,數(shù)就變?yōu)樵鹊?0分之1。因此,100就是1。綜上所述,在定義10n(n包括0)的值時(shí)可以遵循以下規(guī)則:

指數(shù)每減1,數(shù)字就變?yōu)樵瓉淼?0分之1。

10-1是什么

不要將思維止步于100之處。對(duì)于10-1(10的-1次方),讓我們同樣套用這一規(guī)則(指數(shù)每減1,數(shù)字就變?yōu)樵瓉淼?0分之1)。

100˙11

10_1˙

10110_2˙

100110_3˙1000

1??101??101??10

規(guī)則的擴(kuò)展

首先讓我們做一個(gè)小結(jié)。我們學(xué)習(xí)了10n計(jì)數(shù)法的相關(guān)內(nèi)容。起初,我們把n為1,2,3…時(shí),即101,102,103…想作“1個(gè)10相乘”、“2個(gè)10相

乘”、“3個(gè)10相乘”……然后,我們拋卻了“n個(gè)10相乘”的思維,尋找到了一個(gè)擴(kuò)展規(guī)則:對(duì)于10n,n每減1,就變成原來的10分之1。

當(dāng)n為0時(shí),若套用“10n為n個(gè)10相乘”的規(guī)則,著實(shí)比較費(fèi)解。于是我們轉(zhuǎn)而求助于“n每減1,就變成原來的10分之1”的規(guī)則”,定義出100是1(因?yàn)?01的10分之1就是1)。

同樣地,10-1,10-2,10-3…的值(即n為-1,-2,-3…時(shí)),也適用于這個(gè)擴(kuò)展規(guī)則。

如此,對(duì)于所有的整數(shù)n(…,-3,-2,-1,0,1,2,3,…),都能定義10n的值。對(duì)于10-3來說,“-3個(gè)10相乘”的思維并不直觀。但倘若套用擴(kuò)展規(guī)則,即使n是負(fù)數(shù),也能“定義出”10的n次方的值。

對(duì)20進(jìn)行思考

讓我們用思考100的方法,也思考一下20的值吧。

25˙32

24

˙16

23

˙8

22

˙4

21

˙2

20

˙?

由此可知,對(duì)于2n來說,n每減1,數(shù)值就變成原來的2分之1。21的2分之1是20,那么20=1。在這里我想強(qiáng)調(diào)的是,不要將20的值作為一種知識(shí)去記憶,我們更需要考慮的是,如

何對(duì)20進(jìn)行適當(dāng)?shù)亩x,以期讓規(guī)則變得更簡(jiǎn)單。這不是記憶力的問題,而是想象力的問題。請(qǐng)記住這種思維方式:以簡(jiǎn)化規(guī)則為目標(biāo)去定義值。

1??21??21??21??21??2

2-1是什么

讓我們參照10-1的規(guī)則來思考2-1。20除以2,得到的是2-1,即2-1=12。

“2的-1次方”在直覺上較難理解。鑒于規(guī)則的簡(jiǎn)單化和一致性,2的-1次方可以定

義為2-1=21。同理,2-2=212,2-3=213。

綜上所述,可以總結(jié)出如下等式:

10 5=1×10×10×10×10×1010 4=1×10×10×10×1010 3=1×10×10×1010 2=1×10×1010 1=1×10100=110-1=1÷1010-2=1÷10÷1010-3=1÷10÷10÷1010-4=1÷10÷10÷10÷1010-5=1÷10÷10÷10÷10÷10

2 5=1×2×2×2×2×22 4=1×2×2×2×22 3=1×2×2×22 2=1×2×22 1=1×2

20

=12-1=1÷22-2=1÷2÷22-3=1÷2÷2÷22-4=1÷2÷2÷2÷22-5=1÷2÷2÷2÷2÷2

看了上面的等式之后,你應(yīng)該就更能體會(huì)100和20為什么都等于1了吧。

到這里,我們給之前所說的“規(guī)則”取名為“指數(shù)法則”。指數(shù)法則的表達(dá)式為

=Na b

Na×Nb

即“N的a次方乘以N的b次方,等于N的a b次方”法則(但N≠0)。有關(guān)指數(shù)

法則的內(nèi)容,在第7章也會(huì)談到。

0所起的作用

0的作用:占位

這節(jié)我們來討論0的作用。例如,用10進(jìn)制表示的2503,它當(dāng)中的0起到了什么作用呢?2503的0,表示十位“沒有”。雖說“沒有”,但這個(gè)0卻不能省略。因?yàn)槿绻÷粤?,寫成253,那就變成另一個(gè)數(shù)了。

在按位計(jì)數(shù)法中,數(shù)位具有很重要的意義。即使十位的數(shù)“沒有”,也不能不寫數(shù)字。這時(shí)就輪到0出場(chǎng)了,即0的作用就是占位。換言之,0占著一個(gè)位置以保障數(shù)位高于它的數(shù)字不會(huì)產(chǎn)生錯(cuò)位。

正因?yàn)橛辛吮硎?ldquo;沒有”的0,數(shù)值才能正確地表現(xiàn)出來。可以說在按位計(jì)數(shù)法中0是不可或缺的。

0的作用:統(tǒng)一標(biāo)準(zhǔn),簡(jiǎn)化規(guī)則

在按位計(jì)數(shù)法的講解中,我們提到了“0次方”,還將1特意表示成100。使用0,能夠?qū)次挥?jì)數(shù)法的各個(gè)數(shù)位所對(duì)應(yīng)的大小統(tǒng)一表示成

10n

否則,就必須特別處理“1”這個(gè)數(shù)字。0在這里起到了標(biāo)準(zhǔn)化的作用。

如果從高到低各個(gè)數(shù)位的數(shù)字依次為an,an-1,an-

網(wǎng)友評(píng)論(不代表本站觀點(diǎn))

來自jamie13**的評(píng)論:

看完書以后覺得結(jié)城浩SAMA簡(jiǎn)直是我的偶像,同時(shí)推薦他的《數(shù)學(xué)女孩》,本來是系列作品的,但大陸譯本只有一本,好坑!

2014-04-26 20:24:58
來自無昵稱**的評(píng)論:

復(fù)習(xí)了很多數(shù)學(xué)基礎(chǔ),以后再也不敢說沒有實(shí)現(xiàn)不了的程序了,嘿嘿

2014-02-28 14:41:46
來自不解衣**的評(píng)論:

它讓我對(duì)數(shù)學(xué)的概念有了明顯的改觀,最重要的是這導(dǎo)致我對(duì)數(shù)學(xué)產(chǎn)生了興趣

2013-05-30 20:35:50
來自無昵稱**的評(píng)論:

發(fā)貨速度太慢 包裝過于簡(jiǎn)單 五本書就一塑料袋包裝

2015-10-29 20:50:46
來自njumagi**的評(píng)論:

本書對(duì)程序員應(yīng)該掌握的基本數(shù)學(xué)知識(shí)進(jìn)行了深入淺出的講解,譯者水平挺高,文筆流暢!

2013-05-24 12:40:55
來自無昵稱**的評(píng)論:

作者寫的很淺顯易懂,從淺顯的數(shù)學(xué)知識(shí)中能體會(huì)到數(shù)學(xué)思維在編程中的重要性

2013-11-01 00:13:00
來自春暉小**的評(píng)論:

程序員的數(shù)學(xué)思維很重要有木有,這么有趣的介紹幫助大大有木有,果斷有價(jià)值

2012-12-12 09:06:09
來自無昵稱**的評(píng)論:

不要害怕數(shù)學(xué),從問題驅(qū)動(dòng)的角度學(xué)習(xí),更加有動(dòng)力,也更清晰思路。

2014-04-25 11:58:40
來自鍵坤**的評(píng)論:

我是在新華書店看了這本書才買的。這本書寫的相當(dāng)棒,如果再有一些習(xí)題看起來效果就更佳了。對(duì)于我這個(gè)數(shù)學(xué)功底不怎么樣的人來看,挺好的。

2013-02-17 08:28:08
來自無昵稱**的評(píng)論:

非常值得高中生和無數(shù)學(xué)基礎(chǔ)的蹩腳程序員看。給公司買了一本,準(zhǔn)備也給兒子存一本,等他高中時(shí)再看。

2013-06-07 19:21:50
來自妖瞳沐**的評(píng)論:

書籍不錯(cuò),將程序員所必須的較為簡(jiǎn)單的數(shù)學(xué)思想進(jìn)行了闡述

2013-04-27 08:10:44
來自mcyzzk**的評(píng)論:

好啊,可是我寫評(píng)價(jià)已經(jīng)寫得厭煩了。每次買幾本書,看都沒怎么看呢,怎么評(píng)價(jià)?

2016-03-17 11:52:58
來自無昵稱**的評(píng)論:

很有趣的數(shù)學(xué)讀本,對(duì)數(shù)學(xué)的一些內(nèi)容很有啟發(fā)~

2014-07-02 01:05:58
來自多讀書G**的評(píng)論:

從另外一個(gè)角度看數(shù)學(xué),讓數(shù)學(xué)變得有趣,如果中學(xué)時(shí)代就讀過這本書的話,現(xiàn)在數(shù)學(xué)應(yīng)該比較好了,受傳統(tǒng)教育的毒害深了

2012-12-14 13:45:59
來自放手、**的評(píng)論:

這是一本 培養(yǎng)編程愛好的書 沒有高深的講解 簡(jiǎn)單易懂; 當(dāng)然 他并不是學(xué)習(xí)編程的專業(yè)書籍 內(nèi)容淺顯 非常適合初學(xué)者

2015-01-15 23:00:00
來自泊浮目1**的評(píng)論:

日本的作者挺有意思的,略幽默。內(nèi)容嘛,可以算是算法的學(xué)前教育嗎?我覺得在中國(guó)這本書大多數(shù)內(nèi)容用不上這本書~因?yàn)橹袊?guó)教育太恐怖啦!

2015-03-20 20:15:29
來自無昵稱**的評(píng)論:

書籍印刷很好。內(nèi)容也輕松易懂。適合中學(xué)生作為編程科普來閱讀。專業(yè)的做程序的學(xué)生,這書有些太簡(jiǎn)單。或者讀著玩倒是可以。應(yīng)該算是寫的不錯(cuò)的書。

2013-04-12 10:42:03
來自納蘭韋**的評(píng)論:

在書店早早翻過,當(dāng)時(shí)就覺得很不錯(cuò)。向來不喜歡枯燥的東西,這本書把枯燥的內(nèi)容寫得很有趣,尤為難得的是在其中融入了對(duì)程序設(shè)計(jì)的思維映射,非常不錯(cuò)。建議做開發(fā)的朋友們讀一下。

2012-12-10 13:30:33
來自無昵稱**的評(píng)論:

很值得程序員看的一本經(jīng)典書籍,提高編程水平。

2012-12-28 17:47:42
來自tmacwas**的評(píng)論:

很適合編程入門的人看,而且介紹的都是編程思想中很實(shí)用的理論

2013-04-20 16:38:29
來自克念sam**的評(píng)論:

程序員的數(shù)學(xué)還是很重要的,但是很多時(shí)候可能會(huì)發(fā)現(xiàn)沒有那么多的精力去專門完整的學(xué)習(xí)一門數(shù)學(xué)的學(xué)科,所以這本書正好是對(duì)我的胃口。

2013-02-19 19:35:54
來自vipliji**的評(píng)論:

把道理說的簡(jiǎn)單而且透徹,有助于深入理解數(shù)學(xué)

2015-12-21 17:20:00
來自fieldin**的評(píng)論:

難得一見的講解基礎(chǔ)編程數(shù)學(xué)的好書,圖文并茂,清晰明了。

2014-11-04 12:47:35
來自漫步云**的評(píng)論:

程序中的數(shù)學(xué),數(shù)學(xué)中的程序,數(shù)學(xué)乃計(jì)算機(jī)的基礎(chǔ)

2015-03-25 16:18:05
來自無昵稱**的評(píng)論:

這本書在還沒閱讀的時(shí)候就已經(jīng)對(duì)它產(chǎn)生了興趣,等我真正拿到手的時(shí)候更對(duì)它愛不釋手.它使一個(gè)對(duì)數(shù)學(xué)厭煩的人可以輕松的學(xué)習(xí)數(shù)學(xué),而且內(nèi)容清晰明了、易懂.對(duì)于初學(xué)者來說它是一個(gè)很好的幫手.

2012-12-17 21:20:23
來自松槐散**的評(píng)論:

程序員的數(shù)學(xué)【一本為程序員朋友們寫的數(shù)學(xué)書】程序員的數(shù)學(xué)【一本為程序員朋友們寫的數(shù)學(xué)書】

2015-09-07 15:48:58
來自書香傳**的評(píng)論:

正如這本書臨近結(jié)尾總結(jié)所言,數(shù)是一個(gè)龐大而復(fù)雜的事物,是人所不擅長(zhǎng)的。因此,人類發(fā)明了計(jì)數(shù)法,但還不夠,于是有了邏輯、分組、算法,并能模式化。程序員所面對(duì)的就是不斷面對(duì)實(shí)際問題,繼承已有的解決方案,開辟新的解決路徑。

2013-12-02 21:13:13

免責(zé)聲明

更多出版社