学习总结之《具体数学》

  《具体数学》是高德纳经典著做《计算机程序艺术》的数学预备知识部分的深化和拓展。html

  咱们先看一道题,ide

  一个娱乐场里面,有一个轮盘赌局,轮盘上有编号为1到1000的1000个槽。若是一次旋转小球落在的槽里的数字$n$知足$\lfloor\sqrt[3]{n}\rfloor|n$,则娱乐场付给咱们5元,不然咱们损失一元。若是咱们玩这个游戏,会不会有但愿赢钱。函数

     其中$\lfloor\sqrt[3]{n}\rfloor|n$表示$\sqrt[3]{n}$的下取整能整除$n$,即$n$能够表示成$\lfloor\sqrt[3]{n}\rfloor|n$的整数倍。this

 

  通常此类有关输赢的问题,都是要回答两个问题:idea

  1. 咱们赢钱的几率是多少?若是一件事赢的几率不大,那咱们通常是不会去作的,就像别人精心设计的赌局同样,咱们只有挨宰的份。不一样风险偏好的人会对不一样的几率会有不一样的反应。这里涉及投资内容暂且不提。
  2. 假设咱们玩了好多好屡次,咱们平均会赢多少钱,数学上的分析就是咱们赢钱的指望是多少。这两个问题本质是同样的,知道赢钱的几率,也知道输钱的几率,那么加上输赢时的收益损失,就知道指望了,这只是简单的计算问题。

  用这样的思路思考这道题,就是要计算赢钱的几率和指望。假设1000个数出现的概率相等,那么获胜的几率就是1000个数里知足条件$\lfloor\sqrt[3]{n}\rfloor|n$的个数$W$除以1000,能够获得计算指望的公式以下设计

$$\frac{5W-(1000-W)}{1000}$$ 如今问题转化成求解从1到1000能知足$\lfloor\sqrt[3]{n}\rfloor|n$的数字有多少个?htm

咱们怎么计算呢?blog

若是n是个小的数,咱们能够经过枚举很快的计算获得。但1000不算小。这个问题包含了这本书的几个知识点,答案$W=172$,具体解答放在下一篇文章里。递归

本书一共有九章内容,分别为:游戏

  1. 递归问题
  2.  和
  3.  整函数
  4.  数论
  5.  二项系数
  6.  特殊数
  7.  母函数(又名生成函数)
  8.  离散几率
  9.  渐进(Asymptotics)

新技能:

1、Iverson notation( Iverson 标记)

  "Kenneth E.Iverson introduced a wonderful idea in his programming language APL, and we'll see that it greatly simplifies many of the things we want to do in this book. The idea is simply to enclose a true-or-false statement in brackets, and to say that the result is 1 if the statement is true, 0 if the statement is false. "

  上面的意思就是用[statement]来表示1和0,举个例子以下,

$$[P是素数]=
\begin{cases}
0& \text{p is not prime}\\
1& \text{P is prime}
\end{cases}$$

       Iverson 标记能够在把\(\sum\)的上下标中的条件给去掉,表示成更容易理解的形式(对Iversion标记熟悉后很方便)求和\(\sum\)均可以写成以下的形式

                         \(\sum_k{a_k}[P(k)]\)

       若是P(k)为假则\(a_k[P(k)]\)这一项为0,因此,以上的求和把全部知足条件的项都包含进去了。使用这样的标记方法,可让咱们更简单方便的操纵求和的上下标。  

   例如,全部的偶数求和常规的表示形式是$\sum_{k}{2k},使用Iverson记法能够表示成 $$\sum_{j=1}{k[k=2j]}$$

   在某些时候通过这样变换的指标让咱们更加清晰的看清关系,书上的一个变换例子以下

 

原文首发于博客园 Hall Of FAME

地址

相关文章
相关标签/搜索