1. 概述

1.1. 内容简介

《数学女孩》以小说的形式展开,重点描述一群年轻人探索数学中的美。内容由浅入深,数学讲解部分十分精妙,被称为“绝赞的初等数学科普书”。内容涉及数列和数学模型、斐波那契数列、卷积、调和数、泰勒展开、巴塞尔问题、分拆数等,非常适合对数学感兴趣的初高中生以及成人阅读1

1.2. 作者简介

作者结城浩,日本资深技术作家和程序员。二十年来笔耕不辍,在编程语言、设计模式、数学、密码技术等领域,编写著作三十余本。代表作有《数学女孩》系列、《程序员的数学》等1

1.3. 人物简介

  1. :书中的主角,以第一人称视角对故事进行叙述,本文为了方便写作,下面就用男主来指代主角了。男主是一名高二学生,不喜欢运动,也没什么朋友,最喜欢的就是展开数学公式,总是在图书室一个人面朝笔记本写写算算。
  2. 米尔嘉:数学学霸,年级数学第一,但总分是第二,落后于都宫。高一与男主结识,两人经常一起讨论数学问题,经常用一流的解法打动男主。
  3. 泰朵拉:数学一般的活力少女,和男主在同一所初中毕业,比男主小一届,所以是高一学生,平时经常向男主发问。
  4. 都宫:年级第一,擅长体育,在书中出现较少。
  5. 村木老师:知识渊博的数学老师,有时候会给男主和米尔嘉出题,让他们自由思考。
  6. 盈盈:钢琴爱好者协会“最强音”的会长,偶尔会和米尔嘉一起练琴。

2. 第1章 数列和数学模型

2.1. 故事情节

本章主要介绍了男主和米尔嘉的相遇过程,米尔嘉给男主念了几个数列,被男主接上了,两人就像对上了暗号,确认过眼神,都是搞数学的人。

2.2. 数列智力题没有正确答案

数列题提供的有限的几个数字,而数列本身是无限延续的,就像看起来很简单的 1 , 2 , 3 , 4 , 1, 2, 3, 4 ,\cdots 1,2,3,4,这样的数列,我们很自然地会想到下一个数应该是 5 5 5,但其实后面的数也可以是 10 , 20 , 30 , 40 , 10, 20, 30, 40,\cdots 10,20,30,40,满足下面的表达式

a n = [ ( ( x 1 ) m o d    4 ) + 1 ] 1 0 ( x / 4 ) , ( n N + ) <mtext> (1.1) </mtext> a_n = [((x-1) \mod 4 ) + 1] * 10^{\lfloor(x / 4) \rfloor} , (n \in N_+) \tag{1.1} an=[((x1)mod4)+1]10(x/4),(nN+)(1.1)

我们无法发现数列的规律,真正的数列模型是一眼看不出来的。如下面这个数列

1 , 2 , 3 , 4 , 6 , 9 , 8 , 12 , 18 , 27 , 1, 2, 3, 4, 6, 9, 8, 12, 18, 27, \cdots 1,2,3,4,6,9,8,12,18,27,

其答案可能是这样的

<munder> <munder> 2 0 3 0 </munder> <mtext> 指数之和为0 </mtext> </munder> , <munder> <munder> 2 1 3 0 , 2 0 3 1 </munder> <mtext> 指数之和为1 </mtext> </munder> , <munder> <munder> 2 2 3 0 , 2 1 3 1 , 2 0 3 2 </munder> <mtext> 指数之和为2 </mtext> </munder> , <munder> <munder> 2 3 3 0 , 2 2 3 1 , 2 1 3 2 , 2 0 3 3 </munder> <mtext> 指数之和为3 </mtext> </munder> , {\underbrace{2^0 3^0}_{\text{指数之和为0}}}, {\underbrace{2^1 3^0, 2^0 3^1}_{\text{指数之和为1}}} , {\underbrace{2^2 3^0, 2^1 3^1, 2^0 3^2}_{\text{指数之和为2}}} , {\underbrace{2^3 3^0, 2^2 3^1, 2^1 3^2, 2^0 3^3}_{\text{指数之和为3}}} , \cdots 指数之和为0 2030,指数之和为1 2130,2031,指数之和为2 2230,2131,2032,指数之和为3 2330,2231,2132,2033,

这就引出了后面的质数分解问题,即书中所说的“世界上只有两个质数”的话题。

3. 第2章 一封名叫数学公式的情书

3.1. 故事情节

这一章主要讲述了男主和泰朵拉的相遇过程。男主收到一封来自泰朵拉的信,信中说到泰朵拉希望男主能够教她如何学好数学,于是两人相约在阶梯教室。

3.2. 所有约数之和

米尔嘉给男主出了一道题,题目如下

有一个正整数 n n n 如何求出 n n n 的所有约数之和?

  • 符号定义
  1. p 0 , p 1 , p 2 , , p m p_0, p_1, p_2, \dots, p_m p0,p1,p2,,pm 来表示质数
  2. a 0 , a 1 , a 2 , a m a_0, a_1, a_2 \dots, a_m a0,a1,a2,am 来表示指数
  3. m + 1 m + 1 m+1 表示将 n n n 分解质因数后质因数的个数
  • 男主的解法
  1. 将正整数 n n n 进行因式分解

假设 p 0 , p 1 , p 2 , , p m p_0, p_1, p_2, \dots, p_m p0,p1,p2,,pm 为质数, a 0 , a 1 , a 2 , a m a_0, a_1, a_2 \dots, a_m a0,a1,a2,am 为正整数,则有

n = p 0 a 0 × p 1 a 1 × p 2 a 2 × × p m a m <mtext> (2.1) </mtext> n = p_0^{a_0} \times p_1^{a_1} \times p_2^{a_2} \times \dots \times p_m^{a_m} \tag{2.1} n=p0a0×p1a1×p2a2××pmam(2.1)

  1. n n n 的约数 T n T_n Tn 就可以表现为以下形式。

T n = p 0 b 0 × p 1 b 1 × p 2 b 2 × × p m b m <mtext> (2.2) </mtext> T_n = p_0^{b_0} \times p_1^{b_1} \times p_2^{b_2} \times \dots \times p_m^{b_m} \tag{2.2} Tn=p0b0×p1b1×p2b2××pmbm(2.2)

其中 b m b_m bm 就是以下整数。

b 0 = 0 , 1 , 2 , 3 , , a 0 <mtext> 中的任意数 </mtext> b_0 = 0, 1, 2,3, \dots , a_0 \text{中的任意数} b0=0,1,2,3,,a0中的任意数

b 1 = 0 , 1 , 2 , 3 , , a 1 <mtext> 中的任意数 </mtext> b_1 = 0, 1, 2,3, \dots , a_1 \text{中的任意数} b1=0,1,2,3,,a1中的任意数

b m = 0 , 1 , 2 , 3 , , a m <mtext> 中的任意数 </mtext> b_m = 0, 1, 2,3, \dots , a_m \text{中的任意数} bm=0,1,2,3,,am中的任意数

  1. 将公式 2.2 2.2 2.2 展开,就可以得到公式 2.3 2.3 2.3

<mstyle displaystyle="true" scriptlevel="0"> T n </mstyle> <mstyle displaystyle="true" scriptlevel="0"> = ( 1 + p 0 + p 0 2 + + p 0 a 0 ) </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> × ( 1 + p 1 + p 1 2 + + p 1 a 1 ) </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> × ( 1 + p 2 + p 2 2 + + p 2 a 2 ) </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> × </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> × ( 1 + p m + p m 2 + + p m a m ) </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mtext> (2.3) </mtext> { \begin{aligned} T_n &= (1 + p_0 + p_0^2 + \dots + p_0^{a_0}) & \\ &\times (1 + p_1 + p_1^2 + \dots + p_1^{a_1}) &\\ &\times (1 + p_2 + p_2^2 + \dots + p_2^{a_2}) &\\ &\times \dots &\\ &\times (1 + p_m + p_m^2 + \dots + p_m^{a_m}) &\\ \end{aligned} } \tag{2.3} Tn=(1+p0+p02++p0a0)×(1+p1+p12++p1a1)×(1+p2+p22++p2a2)××(1+pm+pm2++pmam)(2.3)

这个公式显然很不简洁,下面看米尔嘉的解答。

  • 米尔嘉的解法
  1. 将大于1的整数 n n n 进行以下形式的质因数分解

n = <munderover> k = 0 m </munderover> p k a k <mtext> (2.4) </mtext> n = \prod_{k = 0}^m p_k^{a_k} \tag{2.4} n=k=0mpkak(2.4)

  1. 假设 p k p_k pk 为互不相同的质数, a k a_k ak 为正整数。那么,此时 n n n 的所有约数之和 T n T_n Tn 就可以用以下公式来求解。

<mstyle displaystyle="true" scriptlevel="0"> T n </mstyle> <mstyle displaystyle="true" scriptlevel="0"> = <munderover> k = 0 m </munderover> <munderover> i = 0 m </munderover> p k a i </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mstyle displaystyle="true" scriptlevel="0"> = <munderover> k = 0 m </munderover> 1 p k a k + 1 1 p k </mstyle> <mstyle displaystyle="true" scriptlevel="0"> </mstyle> <mtext> (2.5) </mtext> { \begin{aligned} T_n & = \prod_{k = 0}^m \sum_{i = 0}^m p_k^{a_i} & \\ & = \prod_{k = 0}^m \frac{1 - p_k^{a_k + 1}}{1 - p_k} & \\ \tag{2.5} \end{aligned} } Tn=k=0mi=0mpkai=k=0m1pk1pkak+1(2.5)

4. 参考文献

[1]得到APP.《数学女孩》[EB/OL].https://m.igetget.com/hybrid/v2/ebook/detail?bid=qPKdG1m9B8MaveyJdxRzNnKYlqgVZ3koXB3o5pL7E4m1r26kQjXDAPObGkYgJ4pN,2016.01.


联系邮箱:curren_wong@163.com

Github:https://github.com/CurrenWong

欢迎转载/Star/Fork,有问题欢迎通过邮箱交流。