戴德金分界数唯一性与 Python 取模

卡在戴德金连续性公理的分界数证明里,也重新记清 Python 中取模、相等与不等于的写法。

Read in English →

昨天在学校的《数学分析》里看到 Dedekind(戴德金)连续性公理,又在“分界数为什么唯一”这一步卡了将近四十分钟。符号一个接一个,证明像是在集合之间绕圈。看了很久,我还是不能说自己已经看懂,只能先把目前能够理清的骨架记下来。

图书馆窗边的木桌上放着电脑、书和平板
在图书馆继续啃学校的数学分析教材,桌面比脑子整齐得多。

先把“存在”和“唯一”分开

在我现在的理解里,一个 Dedekind 分割把实数集分成非空的两部分 AB:两者没有重叠,合起来是整个实数集,而且 A 中的每个数都不大于 B 中的每个数。

如果有一个实数 c,使任意 a Ab B 都满足 a c b,那么 c 就是这道分割的分界数。连续性解决的是“这样的 c 是否存在”,而唯一性要回答的是“会不会同时出现两个不同的 c”。我之前把这两个问题揉在一起看,证明自然越看越乱。

数学分析教材中戴德金连续性公理及分界数证明的页面
教材里的证明符号很密。今天先不追求一口气看完,而是把每一步在做什么拆开。

用中点看唯一性

唯一性可以先用一个更直观的反证骨架来理解。

  1. 假设同一个分割有两个不同的分界数,并设 c₁ < c₂
  2. 取它们的中点 m = (c₁ + c₂) / 2,于是 c₁ < m < c₂
  3. 因为 AB 合起来是整个实数集,所以 m 只能属于 AB
  4. m A,由 c₁ 是分界数,应有 m c₁,与 m > c₁ 矛盾。
  5. m B,由 c₂ 是分界数,应有 c₂ m,又与 m < c₂ 矛盾。

两种可能都会矛盾,因此不能存在两个不同的分界数。现在回头看,关键并不是记住一长串符号,而是认出“假设有两个—在中间取一个数—穷尽它属于哪一边—两边都矛盾”这条链。教材里的证明还需要继续逐行核对,但至少我知道自己应该盯住哪些位置了。

Python 里的 %!===

数学分析看累以后,我又复习了一会儿 Python。判断一个整数能否被另一个整数整除,可以看余数是不是零:dividend % divisor == 0

  • % 是取模运算,在这里用来求余数。
  • == 是比较两边是否相等。
  • != 是比较两边是否不相等。
  • = 是赋值,不能和 == 混用。

除数还必须先排除零,否则 % 运算会报错。可以先写成下面这样:

dividend = int(input('请输入被除数:'))
divisor = int(input('请输入除数:'))

if divisor != 0:
    if dividend % divisor == 0:
        print('可以整除')
    else:
        print('不能整除')
else:
    print('除数不能为 0')

下一次再看这段证明,我准备把每一行分别标成“假设、取中点、分类、矛盾”,然后不看答案重新讲一遍。Python 这边则多换几组被除数和除数运行,确认 %==!= 没有记混。

等一会儿再去图书馆。今天先记到这里。

评论

0 条