本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:

  • 国外经典教材)离散数学及其应用 第七版 Discrete Mathematics and Its Applications 7th ,作者是 Kenneth H.Rosen ,袁崇义译,机械工业出版社
  • 离散数学 第二版,武波等编著,西安电子科技大学出版社,2006年
  • 离散数学 第三版,方世昌等编著,西安电子科技大学出版社,2013年
  • (经典参考书及其题解)离散数学/离散数学——理论•分析•题解,左孝凌、李为鉴、刘永才编著,上海科学技术文献出版社
  • 离散数学习题集:数理逻辑与集合论分册,耿素云;图论分册,耿素云;抽象代数分册, 张立昂。北京大学出版社

文章目录

  • 4.1 函数
    • 4.1.1 函数的定义
    • 4.1.2 递归定义的函数

4.1 函数

高等数学中从变量的角度提出了函数的概念,而且是在实数集合上讨论函数,这种函数一般是连续间断连续的。现在,我们将连续函数的概念,推广到离散变量上,即将函数看作一种特殊的二元关系。这时,我们之前讨论的有关集合或关系的运算和性质,也完全适用于函数。

函数的概念,在日常生活和计算机科学中都非常重要,各种高级编程语言中大量使用函数,而计算机的任何输出,都可看做是某个函数作用于某些输入上的结果。

4.1.1 函数的定义

定义4.1.1 设 XXX 和 YYY 是集合,fff 是从 XXX 到 YYY 上的二元关系,如果对于每个 x∈Xx \in Xx∈X 都有唯一的 y∈Yy \in Yy∈Y ,使得 ⟨x,y⟩∈f\langle x, y\rangle \in f⟨x,y⟩∈f ,则称 fff 为从 XXX 到 YYY 的函数 a function from X to Y ,记为f:X→Yf: X \to Yf:X→Y 。函数的形式化定义为:
f:X→Y⇔∀x(x∈X→∃y(y∈Y∧⟨x,y⟩∈f∧∀z(z∈Y∧⟨x,z⟩∈f→y=z)))f: X \to Y \Lrarr \forall x(x \in X \to \exist y(y \in Y \land \langle x, y\rangle \in f \land \forall z (z \in Y \land \langle x, z \rangle \in f \to y = z)))f:X→Y⇔∀x(x∈X→∃y(y∈Y∧⟨x,y⟩∈f∧∀z(z∈Y∧⟨x,z⟩∈f→y=z)))

函数又称作映射 mapping变换 transformation

定义4.1.2 设 fff 为从集合 XXX 到 YYY 的函数,任取 x∈Xx \in Xx∈X ,若 ⟨x,y⟩∈f\langle x, y\rangle \in f⟨x,y⟩∈f ,则称 yyy 为在 fff 下 xxx 的函数值 value image ,记为 f(x)=yf(x) = yf(x)=y ,而 xxx 则称为 yyy 的原像 preimage 。若 X′⊆XX' \subseteq XX′⊆X ,称 f(X′)={f(x)∣x∈X′}f(X') = \{ f(x) \mid x \in X'\}f(X′)={f(x)∣x∈X′} 为函数 fff 下 X′X'X′ 的像。特别地,称整个前域 XXX 的像 f(X)f(X)f(X) 为函数的值域

设 fff 为从集合 XXX 到 YYY 的函数,下图描述了函数 fff 的基本特征。其中函数 fff 的前域 XXX 为集合 XXX ,陪域为集合 YYY ,函数 fff 的定义域 domf=X\textrm{dom} f = Xdomf=X ,值域 ranf=f(X)={f(x)∣x∈X}\textrm{ran} f = f(X) = \{ f(x) \mid x \in X\}ranf=f(X)={f(x)∣x∈X} ,显然有 ranf⊆f\textrm{ran} f \subseteq franf⊆f 。

XXX 到 YYY 的函数实质上是一个从 XXX 到 YYY 的二元关系,反过来则不一定,从 XXX 到 YYY 的二元关系不一定是 XXX 到 YYY 的函数。区别于一般二元关系,函数有以下两个特征

  • 点点有定义)函数 fff 的定义域 domf=X\textrm{dom}f = Xdomf=X (即函数的定义域是 XXX ,而不能是 XXX 的某个真子集);
  • 值唯一性/单值性)对于每个 x∈Xx \in Xx∈X ,在 YYY 中有且仅有唯一的一个元素 yyy ,满足 ⟨x,y⟩∈f\langle x, y \rangle \in f⟨x,y⟩∈f ,即对 y1,y2∈Yy_1, y_2 \in Yy1​,y2​∈Y ,有
    f(x)=y1∧f(x)=y2⇒y1=y2f(x) = y_1 \land f(x) = y_2 \Rarr y_1 = y_2f(x)=y1​∧f(x)=y2​⇒y1​=y2​

一个关于某个具体函数的描述,如果满足函数的定义,则称这个函数描述是良定义的 well defined

【例1】判断下图所示的四个关系中,哪些能构成函数。

解:(a)不是函数,因为 x2x_2x2​ 没有像;(b)也不是函数,因为 x2x_2x2​ 有两个像;其他两个都是函数。

【例2】判断下列关系中,哪些能构成函数。
(1)fff 是 N\NN 上的二元关系,且 f={⟨x1,x2⟩∣x1,x2∈N,x1+x2<10}f = \{ \langle x_1, x_2 \rangle \mid x_1, x_2 \in \N,\ x_1 + x_2 < 10\}f={⟨x1​,x2​⟩∣x1​,x2​∈N, x1​+x2​<10}
(2)fff 是 R\RR 上的二元关系,且 f={⟨y1,y2⟩∣y1,y2∈R,y22=y1}f = \{ \langle y_1, y_2 \rangle \mid y_1, y_2 \in \R,\ y_2^2 = y_1 \}f={⟨y1​,y2​⟩∣y1​,y2​∈R, y22​=y1​}
(3)fff 是 N\NN 上的二元关系,且 f={⟨x1,x2⟩∣x1,x2∈N,x2为小于x1的素数个数}f = \{ \langle x_1, x_2 \rangle \mid x_1, x_2 \in \N, \ x_2为小于x_1的素数个数\}f={⟨x1​,x2​⟩∣x1​,x2​∈N, x2​为小于x1​的素数个数}
解:
(1)不能,因为 domf≠N\textrm{dom}f \ne \Ndomf​=N ,且存在 x1x_1x1​ 对应多个 x2x_2x2​ 。
(2)不能。若 y1>0y_1 > 0y1​>0 ,则 y2y_2y2​ 可取 ±y1\pm \sqrt{y_1}±y1​​ 两个元素;若 y1<0y_1 < 0y1​<0 ,则 y2y_2y2​ 无解。
(3)能,因为 domf=N\textrm{dom}f = \Ndomf=N ,且对每个 x1∈Nx_1 \in \Nx1​∈N 都有唯一的元素 x2∈Nx_2 \in \Nx2​∈N 与之对应。

【例3】以下哪些关于函数的描述是良定义的?
(1)f:N→Q,f(x)=1xf: \N \to \mathbb{Q},\ f(x) = \dfrac{1}{x}f:N→Q, f(x)=x1​
(2)g:{1,2,3}→{p,q,r},g={⟨1,q⟩,⟨2,r⟩,⟨3,p⟩}g:\{1, 2, 3\} \to \{ p, q, r\},\ g = \{ \langle 1, q\rangle, \langle 2, r\rangle, \langle 3, p\rangle \}g:{1,2,3}→{p,q,r}, g={⟨1,q⟩,⟨2,r⟩,⟨3,p⟩}
(3)f:N→Z,(f(x))2=x+1f: \N \to \Z,\ (f(x))^2 = x + 1f:N→Z, (f(x))2=x+1
(4)h:R×R→R×R,h(⟨x,y⟩)=⟨y+1,x+1⟩h: \R \times \R \to \R \times \R,\ h(\langle x, y\rangle) = \langle y + 1, x + 1\rangleh:R×R→R×R, h(⟨x,y⟩)=⟨y+1,x+1⟩
解:
(1)不是良定义的,它在 000 处无定义。
(2)是良定义的;
(3)不是良定义的,每个 x∈Nx \in \Nx∈N 存在 ±x+1\pm \sqrt{x+1}±x+1​ 两个元素与之对应;
(4)是良定义的。

设 X,YX, YX,Y 都是有限集合,且有 ∣X∣=m,∣Y∣=n|X| = m, |Y| = n∣X∣=m,∣Y∣=n 。根据函数的定义,对于集合 XXX 中的每个元素,在 YYY 中有且仅有一个元素与之对应。考虑这样一类 XXX 到 YYY 的二元关系 fff :
f={⟨x1,□⟩,⟨x2,□⟩,…,⟨xm,□⟩}f = \{ \langle x_1, \Box\rangle, \langle x_2, \Box\rangle, \dots, \langle x_m, \Box\rangle \}f={⟨x1​,□⟩,⟨x2​,□⟩,…,⟨xm​,□⟩}

对于每个 □\Box□ 所在的位置,可用集合 YYY 中的任何一个元素替代,即有 nnn 种不同的取法,这样的组合共有 nmn^mnm 种,因此 XXX 到 YYY 上有 2m×n2^{m\times n}2m×n 种不同的二元关系,却只有 nmn^mnm 个不同的函数。一般来说,我们用 YXY^XYX 表示 XXX 到 YYY 的所有函数构成的集合,即 YX={f∣f:X→Y}Y^X = \{ f\mid f: X\to Y\}YX={f∣f:X→Y} ,且 ∣YX∣=nm=∣Y∣∣X∣|Y^X| = n^m = |Y|^{|X|}∣YX∣=nm=∣Y∣∣X∣ 。

定义4.1.3 f:A→B,g:C→Df: A\to B,\ g: C\to Df:A→B, g:C→D ,如果 A=C,B=DA = C, B = DA=C,B=D ,且对于所有的 x∈Ax \in Ax∈A ,有 f(x)=g(x)f(x) = g(x)f(x)=g(x) ,则称函数 fff 和 ggg 相等 ,记为 f=gf = gf=g 。

由定义4.1.3可见,「函数相等的定义」与「关系相等的定义」是一致的,它们都要求相同的前域与陪域相同的对应关系。如函数 f1:I→I,f1(x)=x2f_1 : I \to I,\ f_1(x)= x^2f1​:I→I, f1​(x)=x2 和函数 f2:{1,2,3}→I,f2(x)=x2f_2: \{1, 2, 3\} \to I,\ f_2(x)= x^2f2​:{1,2,3}→I, f2​(x)=x2 ,它们是两个不同的函数。

定义4.1.4 当函数 fff 的前域 XXX 是 nnn 个集合的笛卡尔积时,即 X=⨉i=1nXiX = \displaystyle ⨉^n_{i = 1} X_iX=⨉i=1n​Xi​ 时,称 fff 为 nnn 元函数,⟨x1,x2,…,xn⟩∈X\langle x_1, x_2, \dots, x_n \rangle \in X⟨x1​,x2​,…,xn​⟩∈X ,在函数 fff 下的映像记为 f(x1,x2,…,xn)f(x_1, x_2, \dots, x_n)f(x1​,x2​,…,xn​) 。

【例4】设函数 f:N×N→Nf: \N\times \N \to \Nf:N×N→N ,f(x,y)=x+2y+1f(x, y) = x+ 2y + 1f(x,y)=x+2y+1 。
(1)求 ⟨2,0⟩\langle 2, 0\rangle⟨2,0⟩ 在函数 fff 下的像;
(2)求 domf\textrm{dom}fdomf 和 ranf\textrm{ran}franf 。
解:
(1)f(2,0)=2+2×0+1=3f(2, 0) = 2 + 2 \times 0 + 1 = 3f(2,0)=2+2×0+1=3 .
(2)domf=N×N\textrm{dom}f = \N \times \Ndomf=N×N ,不存在 ⟨x,y⟩∈N×N\langle x, y\rangle \in \N \times \N⟨x,y⟩∈N×N 使得 f(x,y)=0f(x, y) = 0f(x,y)=0 ,则 ranf=Z+\textrm{ran}f = \Z^+ranf=Z+ .


4.1.2 递归定义的函数

当函数的前域是用归纳定义的集合时,可以采用递归定义 recursive definitions 的方法定义函数。递归定义的规则是:用「已知元素的函数值」和「给定的函数」,计算新元素的函数值。

特别地,递归定义的函数不一定是归纳的,因为归纳法要求从较小元素的函数值确定较大元素的函数值,而递归定义则不一定遵守这种顺序。

【例5】给出自然数集合 N\NN 上的阶乘函数 f(n)=n!f(n) = n!f(n)=n! 的递归定义。
解:设 f:N→Nf: \N \to \Nf:N→N 。
(a)(基础)f(0)=1f(0) = 1f(0)=1 .
(b)(归纳)n∈N,f(n+1)=(n+1)f(n)n \in \N,\ f(n + 1) = (n + 1)f(n)n∈N, f(n+1)=(n+1)f(n) .

【例6】给出自然数集合 N\NN 上的斐波那契函数的递归定义。
解:设 f:N→Nf: \N \to \Nf:N→N 是斐波那契函数。
(a)(基础)f(0)=0,f(1)=1f(0) = 0,\ f(1) = 1f(0)=0, f(1)=1 .
(b)(归纳)n∈N,f(n+2)=f(n+1)+f(n)n \in \N,\ f(n + 2) = f(n + 1) + f(n)n∈N, f(n+2)=f(n+1)+f(n) .

【例7】以下是麦卡锡91函数,它是递归定义的。设 f:N→Nf: \N \to \Nf:N→N ,已知
f(x)={x−10if x>100f(f(x+11))if 0≤x≤100f(x) = \begin{cases} x - 10 \quad& \textrm{if}\ x > 100 \\ f(f(x+11)) \quad& \textrm{if}\ 0 \le x \le 100 \end{cases} f(x)={x−10f(f(x+11))​if x>100if 0≤x≤100​

求 fff 的函数值。
解:由题意可知:f(90)=f(f(101))=f(91)=f(f(102))=f(92)=⋯=f(99)=f(f(110))=f(100)=f(f(111))=f(101)=91f(90) = f(f(101)) = f(91) = f(f(102)) = f(92) = \dots = f(99) \\ = f(f(110)) = f(100) = f(f(111)) = f(101) = 91f(90)=f(f(101))=f(91)=f(f(102))=f(92)=⋯=f(99)=f(f(110))=f(100)=f(f(111))=f(101)=91 因此:

  • 当 90≤x≤10090 \le x \le 10090≤x≤100 时有 f(x)=91f(x) = 91f(x)=91 。
  • 当 0≤x<900 \le x \lt 900≤x<90 时,存在 k∈Z+k \in \Z^+k∈Z+ ,使得 90≤x+11k≤10090 \le x + 11k \le 10090≤x+11k≤100 ,因此 f(x)=f(f(x+11))=⋯=fk+1(x+11k)=fk(f(x+11k))f(x) = f(f(x + 11)) = \dots = f^{k+1} (x+ 11k) = f^k(f(x + 11k))f(x)=f(f(x+11))=⋯=fk+1(x+11k)=fk(f(x+11k)) 因为 90≤x+11k≤10090 \le x + 11k \le 10090≤x+11k≤100 ,所以 f(x+11k)=91f(x + 11k) = 91f(x+11k)=91 ,故 f(x)=fk(f(x+11k))=fk(91)=fk−1(f(91))=fk−1(91)=⋯=f(91)=91f(x) = f^k (f(x + 11k)) = f^k(91) = f^{k - 1} (f(91)) = f^{k - 1}(91) = \dots = f(91) = 91f(x)=fk(f(x+11k))=fk(91)=fk−1(f(91))=fk−1(91)=⋯=f(91)=91

综上可得:
f(x)={x−10if x>10091if 0≤x≤100f(x) = \begin{cases} x - 10 \quad& \textrm{if}\ x > 100 \\ 91 \quad& \textrm{if}\ 0 \le x \le 100 \end{cases}f(x)={x−1091​if x>100if 0≤x≤100​

【例8】阿克曼函数 Ackerman f:N2→Nf: \N^2 \to \Nf:N2→N 的递归定义如下:
{f(0,n)=n+1if n≥0f(m,0)=f(m−1,1)if m>0f(m,n)=f(m−1,f(m,n−1))if m>0,n>0\begin{cases} f(0, n) = n + 1 \quad& \textrm{if}\ n \ge 0 \\ f(m, 0) = f(m - 1, 1) \quad& \textrm{if}\ m > 0\\ f(m, n) = f(m - 1, f(m, n - 1)) \quad& \textrm{if}\ m > 0, n > 0 \end{cases} ⎩⎪⎨⎪⎧​f(0,n)=n+1f(m,0)=f(m−1,1)f(m,n)=f(m−1,f(m,n−1))​if n≥0if m>0if m>0,n>0​

(1)求 f(2,1)f(2, 1)f(2,1) .
(2)证明 f(2,n)=2n+3f(2, n) = 2n + 3f(2,n)=2n+3 .
解:(1)
① f(2,1)=f(1,f(2,0))f(2, 1)= f(1, f(2, 0))f(2,1)=f(1,f(2,0))
② f(2,0)=f(1,1)f(2, 0) = f(1, 1)f(2,0)=f(1,1)
③ f(1,1)=f(0,f(1,0))f(1, 1) = f(0, f(1, 0))f(1,1)=f(0,f(1,0))
④ f(1,0)=f(0,1)=2f(1, 0) = f(0, 1) = 2f(1,0)=f(0,1)=2
⑤ f(1,1)=f(0,2)=3f(1, 1) = f(0, 2) = 3f(1,1)=f(0,2)=3
⑥ f(2,0)=3f(2, 0) = 3f(2,0)=3
⑦ f(2,1)=f(1,3)f(2, 1) = f(1, 3)f(2,1)=f(1,3)
⑧ f(1,3)=f(0,f(1,2))f(1, 3) = f(0, f(1, 2))f(1,3)=f(0,f(1,2))
⑨ f(1,2)=f(0,f(1,1))=f(0,3)=4f(1, 2) = f(0, f(1, 1)) = f(0, 3) = 4f(1,2)=f(0,f(1,1))=f(0,3)=4
⑩ f(1,3)=f(0,4)=5f(1, 3) = f(0, 4) = 5f(1,3)=f(0,4)=5
⑪ f(2,1)=5f(2, 1) = 5f(2,1)=5
(2)证明如下:
① 当 m=0,n≥0m = 0, n\ge 0m=0,n≥0 时,f(0,n)=n+1f(0, n) = n + 1f(0,n)=n+1 。
② 当 m=1m = 1m=1 时,有

  • 若 n=0n = 0n=0 ,则 f(1,0)=f(0,1)=2f(1, 0) = f(0, 1) = 2f(1,0)=f(0,1)=2 ;
  • 若 n=1n = 1n=1 ,则 f(1,1)=f(0,f(1,0))=f(1,0)+1=3f(1, 1) = f(0, f(1, 0)) = f(1, 0) + 1 = 3f(1,1)=f(0,f(1,0))=f(1,0)+1=3 ;

假设 n=k(k≥1)n = k\ (k \ge 1)n=k (k≥1) 时,有 f(1,k)=k+2f(1, k) = k + 2f(1,k)=k+2 。若 n=k+1n = k + 1n=k+1 ,则 f(1,k+1)=f(0,f(1,k))=f(1,k)+1=(k+2)+1=(k+1)+2f(1, k+1) = f(0, f(1, k)) = f(1, k) + 1 = (k + 2) + 1= (k+1)+2f(1,k+1)=f(0,f(1,k))=f(1,k)+1=(k+2)+1=(k+1)+2 因此,当 m=1m = 1m=1 时有 f(1,n)=n+2f(1, n) = n + 2f(1,n)=n+2 。

③ 当 m=2m = 2m=2 时,有

  • 若 n=0n = 0n=0 ,则 f(2,0)=f(1,1)=3=2×0+3f(2, 0) = f(1, 1) = 3 = 2 \times 0 + 3f(2,0)=f(1,1)=3=2×0+3
  • 若 n=1n = 1n=1 ,则 f(2,1)=f(1,f(2,0))=f(1,3)=5=2×1+3f(2, 1) = f(1, f(2, 0)) = f(1, 3) = 5 = 2 \times 1 + 3f(2,1)=f(1,f(2,0))=f(1,3)=5=2×1+3

假设 n=k(k≥1)n = k\ (k \ge 1)n=k (k≥1) 时,有 f(2,k)=2k+3f(2, k) = 2k + 3f(2,k)=2k+3 。若 n=k+1n = k + 1n=k+1 ,则
f(2,k+1)=f(1,f(2,k))=f(2,k)+2=2k+3+2=2(k+1)+3f(2, k + 1) = f(1, f(2, k)) = f(2, k) + 2 = 2k + 3 + 2 = 2(k + 1) + 3f(2,k+1)=f(1,f(2,k))=f(2,k)+2=2k+3+2=2(k+1)+3

因此,当 m=2m = 2m=2 时有 f(2,n)=2n+3f(2, n) = 2n+3f(2,n)=2n+3 。

不过,当 m=3m = 3m=3 时,f(3,n)=2n+3−3f(3, n) = 2^{n + 3} - 3f(3,n)=2n+3−3 ——这一规律就不是那么好发现的。总的来说,假设 mmm 为层数(主序,即认为每一层 mmm 确定、nnn 变化),nnn 为列数:

  • f(0,n)=n+1f(0, n) = n +1f(0,n)=n+1 给出了 m=0m = 0m=0 时的归纳基础(最基础的归纳边界);
  • f(m,0)=f(m−1,1)f(m, 0) = f(m - 1, 1)f(m,0)=f(m−1,1) 给出了 m>0,n=0m > 0, n = 0m>0,n=0 时 f(m,0)f(m, 0)f(m,0) 对上一层函数的依赖(归纳);
  • f(m,n)=f(m−1,f(m,n−1))f(m, n) = f(m - 1, f(m, n - 1))f(m,n)=f(m−1,f(m,n−1)) 给出了 m>0,n>0m > 0, n > 0m>0,n>0 时 f(m,n)f(m, n)f(m,n) 对前式和上一层函数的依赖(归纳)

归纳定义的集合上进行函数的递归定义时,所得未必是一个函数,特别是当前域的归纳定义使得某些元素可由多种方法构造时,更容易出现这种情况。因此,用递归定义函数时,常需要证明这个函数定义是良定义的

【例9】设 Σ={a,b,c}\Sigma = \{a, b, c\}Σ={a,b,c} ,集合 Σ+\Sigma^+Σ+ 的定义如下:
(1)(基础)a∈Σ+,b∈Σ+,c∈Σ+a \in \Sigma^+,\ b \in \Sigma^+,\ c\in \Sigma^+a∈Σ+, b∈Σ+, c∈Σ+ 。
(2)(归纳)如果 x∈Σ+,y∈Σ+x \in \Sigma^+,\ y \in \Sigma^+x∈Σ+, y∈Σ+ ,那么 xy∈Σ+xy \in \Sigma^+xy∈Σ+ 。
(3)(极小性)∑+\sum^+∑+ 是满足条款(1)、(2)的最小集合。
设 fff 是从 Σ+\Sigma^+Σ+ 到自然数集合 N\NN 上的一个函数,fff 的递归定义如下:
(a)(基础)f(a)=2,f(b)=1,f(c)=3f(a) = 2, f(b) = 1, f(c) = 3f(a)=2,f(b)=1,f(c)=3 。
(b)(归纳)x,y∈Σ+x,y \in \Sigma^+x,y∈Σ+ ,f(xy)=f(x)f(y)f(xy) = f(x)^{f(y)}f(xy)=f(x)f(y) 。
试证明 fff 不是良定义的。

证明:对于串 abc∈Σ+abc \in \Sigma^+abc∈Σ+ ,它可以有以下两种不同的构造方法:
(a)令 x=a,y=bcx = a,\ y = bcx=a, y=bc ,则 xy=abcxy = abcxy=abc 。
(b)令 x=ab,y=cx = ab,\ y = cx=ab, y=c ,则 xy=abcxy = abcxy=abc 。
根据 fff 的递归定义,求 abcabcabc 在 fff 下的值:
f(abc)=f(a)f(bc)=213=2,f(abc)=f(ab)f(c)=(21)3=8f(abc)= f(a)^{f(bc)} = 2^{1^3} = 2,\ f(abc) = f(ab)^{f(c)} = (2^1)^3 = 8f(abc)=f(a)f(bc)=213=2, f(abc)=f(ab)f(c)=(21)3=8 所以 fff 不是良定义的。

【离散数学】集合论 第四章 函数与集合(1) 函数定义、递归定义的函数相关推荐

  1. Python程序开发——第四章 字典与集合

    目录 一.字典 (一)字典的创建 (二)字典的访问 (三)字典的增删改查 1.字典的添加 2.字典的删除 3.字典的修改 4.字典的查询 二.集合 (一)集合的分类 (二)集合的创建 (三)集合元素的 ...

  2. 6、函数返回值、this、递归及回调函数

    一.函数的返回值 ==> return 1. return将函数内部的值返回到函数外,函数外若想使用,必须要接收该返回值 2. return若不书写或者直接写return,函数的返回值为unde ...

  3. 【离散数学】集合论 第四章 函数与集合(3) 鸽巢原理

    本文属于「离散数学」系列文章之一.这一系列着重于离散数学的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数学知识, ...

  4. 第四章 4.3 用代入法求解递归式

    4.3-1 证明:T(n)=T(n-1)+n的解为O(n2n^2). c(n−1)2+n≤n2cn2−2cn+c+n≤n2cn2−(2c−1)n+1≤n2 c(n-1)^2+n\le n^2 \\cn ...

  5. 《Python语言程序设计》王恺 王志 机械工业出版社 第五章 序列、集合和字典 课后习题答案

    5.8 课后习题 (1)Python 中,通过列表中的 index 方法可以根据指定值查找第一个匹配的列表元素 的位置. (2)Python 中,通过列表中的 insert 方法可以将一个元素插入到列 ...

  6. C国演义 [第四章]

    第四章 全排列 题目理解 步骤 树形图 递归函数 递归结束条件 单层逻辑 代码 全排列II 题目理解 步骤 递归函数 递归结束条件 单层逻辑 代码 全排列 力扣链接 给定一个不含重复数字的数组 num ...

  7. Python--三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数...

    三元表达式 列表推导式 生成器表达式 递归与二分法 匿名函数 内置函数 一.三元表达式 name=input('姓名>>: ') res='True' if name == 'lee' e ...

  8. 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数(day4)

    一.三元表达式.列表推导式.生成器表达式 1.三元表达式name=input('姓名>>: ')res='SB' if name == 'alex' else 'NB'print(res) ...

  9. 【离散数学】集合论 第三章 集合与关系(3) 集合计数的加法原理、容斥原理

    本文属于「离散数学」系列文章之一.这一系列着重于离散数学的学习和应用.由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘.此外,在本系列学习文章中,为了透彻理解数学知识, ...

  10. 《Reids 设计与实现》第四章 整数集合和压缩列表

    <Reids 设计与实现>第四章 整数集合和压缩列表 文章目录 <Reids 设计与实现>第四章 整数集合和压缩列表 一.整数集合 1.简介 2.整数集合的实现 3.升级 4. ...

最新文章

  1. PX4多机ros仿真报错
  2. R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())
  3. 调参到头秃?你需要这份自动超参搜索技术攻略
  4. python cmd命令大全-详解python调用cmd命令三种方法
  5. webpack结合reactjs、vuejs项目中图片处理
  6. WinCE串口蓝牙的实现 .
  7. drf实现常用数据缓存
  8. 推荐系统常用术语 [ACM暑校]
  9. 将CAPTCHA添加到您的GWT应用程序
  10. 自定义View控件(2—手写实例代码)
  11. golang解析嵌套yaml配置(局部解析)
  12. 调整Redmine的用户显示格式
  13. AI智能人脸识别很难?30行Python代码完美打造
  14. 编写的第一个键盘软件
  15. Hyperledger Fabric教程(2)-- byfn.sh分析-生成身份证书
  16. android json解析歌词,网易云歌词获取
  17. 2021-07-10树莓派PWM控制三极管(S8050)实现风扇调速
  18. html什么布局可以兼容多平台,腾讯游戏:浅谈游戏官网现状及设计趋势
  19. 【Java】 Java中接口是什么,以及接口的使用和理解
  20. 遇到一个Bug:Android: requestLayout() improperly called

热门文章

  1. 区块链:Ethereum Casper 101
  2. 一个完整的计算器c语言源代码,分享一个C语言的计算器源代码
  3. sony android电视软件,Sony TV Remote app
  4. 象棋游戏显示服务器断开,天天象棋黑屏闪退怎么办 游戏玩不了解决方法
  5. 考研辅导c语言程序设计真题,全国名校C语言程序设计考研真题汇编
  6. 基于java固定资产管理系统设计(含源文件)
  7. js 实现pdf在线阅读
  8. linux 生成excel格式的文件怎么打开乱码,导出的文件乱码怎么办(各位,汉字在excel表格中显示乱码,怎么办)...
  9. Java怎样获项目路径_java项目中获取路径的方式
  10. 整理了一些已分类的产品Axure元件库,助力正在找Axure组件库的同学高速成长