【离散数学笔记】良序原理(The Well Ordering Principle)

参考:MIT教材《Mathematics for Computer Science》


良序原理

Every nonempty set of nonnegative integers has a smallest element.
每个非空的自然数集都有最小的元素。

注意:
(1) 要求集合非空——空集没有最小的元素。
(2) 要求自然数——负整数是不行的,非负有理数也是不行的。例如非负有理数集合 S = { 1 n ∣ n ∈ N ∗ } S=\left\{\frac{1}{n}|n\in N^*\right\} S={n1nN}就没有最小的元素。

良序原理揭示了自然数的某些特殊性质。它看起来很显然,似乎没有什么作用,但在离散数学有关的证明中至关重要。


证明: 2 \sqrt2 2 是无理数。
证明:若 2 \sqrt2 2 是有理数,则 ∃ p , q ∈ N ∗ \exists p,q\in N^* p,qN使得 2 = p q \sqrt2=\frac{p}{q} 2 =qp p q \frac{p}{q} qp是最简分式。即 2 = p 2 q 2 , p 2 = 2 q 2 2=\frac{p^2}{q^2},p^2=2q^2 2=q2p2,p2=2q2。由于 p p p是完全平方数, p p p一定是 4 4 4的倍数。那么 q q q一定是 2 2 2的倍数,故 2 2 2 p , q p,q p,q的公因子,与 p q \frac{p}{q} qp是最简分式。故 2 \sqrt2 2 是无理数。

在上面的证明中我们假定对于任何正整数 m , n m,n m,n m n \frac{m}{n} nm一定可以写成最简分式 m ′ n ′ \frac{m'}{n'} nm使得 m ′ , n ′ m',n' m,n互质。怎么证明这个结论呢?

假设 ∃ m , n \exists m,n m,n使得 m n \frac{m}{n} nm不能写成最简分式。令集合 C = { p ∣ p q 不能写成最简分式 } C=\left\{p|\frac{p}{q}\text{不能写成最简分式}\right\} C={pqp不能写成最简分式},即所有不能写成最简分式的分式的分子。则 m ∈ C m\in C mC,故 C C C非空。那么,根据良序原理, ∃ m 0 ∈ C \exists m_0\in C m0C C C C中最小的元素。根据 C C C的定义, ∃ n 0 \exists n_0 n0使得 m 0 n 0 \frac{m_0}{n_0} n0m0不能写成最简分式,于是 m 0 , n 0 m_0,n_0 m0,n0一定拥有一个公共质因数 p > 1 p>1 p>1。但是 m 0 / p n 0 / p = m 0 n 0 \frac{m_0/p}{n_0/p}=\frac{m_0}{n_0} n0/pm0/p=n0m0,所以如果左边的分式能化为最简分式, m 0 n 0 \frac{m_0}{n_0} n0m0也一定可以。这说明左边的分式也不能化成最简分式。所以 m 0 / p ∈ C m_0/p\in C m0/pC。但 m 0 / p < m 0 m_0/p<m_0 m0/p<m0,与 m 0 m_0 m0 C C C中最小的元素矛盾,故 C C C为空集,假设不成立。证毕。


利用良序原理证明结论的模板:

证明 ∀ n ∈ N , P ( n ) \forall n\in N,P(n) nN,P(n)成立:

  • C = { n ∣ P ( n ) 不成立 } C=\{n|P(n)\text{不成立}\} C={nP(n)不成立}
  • 假设 C C C非空。
  • 根据良序原理, ∃ n 0 ∈ C \exists n_0\in C n0C C C C中最小的元素。
  • 推出矛盾——一般通过说明 P ( n 0 ) P(n_0) P(n0)为真或者 C C C中有比 n 0 n_0 n0更小的元素。
  • 得出结论: C C C一定是空集,就是说,没有反例存在。

证明: ∀ n ∈ N , ∑ i = 1 n i = n ( n + 1 ) 2 \forall n\in N,\sum \limits_{i=1}^ni=\frac{n(n+1)}{2} nN,i=1ni=2n(n+1)
证明:令 C = { n ∣ ∑ i = 1 n i ≠ n ( n + 1 ) 2 } C=\left\{n|\sum \limits_{i=1}^ni\ne\frac{n(n+1)}{2}\right\} C={ni=1ni=2n(n+1)},假设 C C C非空,则 ∃ c ∈ C \exists c\in C cC C C C中最小的元素。因为 c c c最小,故 ∀ n < c \forall n<c n<c n ∈ N n\in N nN ∑ i = 1 n i = n ( n + 1 ) 2 \sum \limits_{i=1}^ni=\frac{n(n+1)}{2} i=1ni=2n(n+1)。又 n = 0 n=0 n=0时成立,故 c > 0 , c − 1 ∈ N c>0,c-1\in N c>0,c1N。因此对 c − 1 c-1 c1成立。而 ∑ i = 1 c − 1 i = c ( c − 1 ) 2 \sum \limits_{i=1}^{c-1}i=\frac{c(c-1)}{2} i=1c1i=2c(c1),两边同时加 c c c ∑ i = 1 c i = c ( c + 1 ) 2 \sum \limits_{i=1}^{c}i=\frac{c(c+1)}{2} i=1ci=2c(c+1),则对 c c c也成立,故假设不成立, C C C为空集。


证明:每个大于 1 1 1的正整数都可以分解为若干个质数的乘积。
证明:记 P ( n ) = { 1 , 若 n 可以分解为若干个质数的乘积 0 , 若 n 不能分解为若干个质数的乘积 P(n)=\begin{cases}1,\text{若}n\text{可以分解为若干个质数的乘积}\\0,\text{若}n\text{不能分解为若干个质数的乘积}\end{cases} P(n)={1,n可以分解为若干个质数的乘积0,n不能分解为若干个质数的乘积。令 C = { n ∣ P ( n ) = 0 , n ∈ N , n > 1 } C=\{n|P(n)=0,n\in N,n>1\} C={nP(n)=0,nN,n>1}。假设 C C C非空,则 ∃ c ∈ C \exists c\in C cC C C C中最小的元素。显然 c c c不是质数,否则它自己就可以表示为一个长度为 1 1 1的乘积式。所以 c = a × b c=a\times b c=a×b a , b ∈ N a,b\in N a,bN。因为 a , b < c a,b<c a,b<c,故 a , b ∉ C a,b\notin C a,b/C。那么, a , b a,b a,b都可以写为若干个质数的乘积,因此 c c c也可以写为若干个质数的乘积,与 c ∈ C c\in C cC矛盾。故 C C C为空集。


定理 n n n是非负整数,一个整数集合 S S S如果满足每个元素都大于等于 − n -n n,那么 S S S是良序集。
证明:令 S ′ = { s + n ∣ s ∈ S } S'=\{s+n|s\in S\} S={s+nsS}。则 S ′ S' S是非负整数集,由良序原理知 S ′ S' S有最小元 m m m,则 S S S的最小元为 m − n m-n mn

定义 一个集合 A A A为良序集,当且仅当其每个子集都有一个最小的元素。
定义 一个数 b b b是由实数构成的集合 S S S的一个下界,当且仅当 ∀ s ∈ S , b ≤ S \forall s\in S,b\le S sS,bS
定义 一个数 b b b是由实数构成的集合 S S S的一个上界,当且仅当 ∀ s ∈ S , b ≥ S \forall s\in S,b\ge S sS,bS
推论 任何有下界的整数集是良序集。
证明:令 b b b是整数集 S S S的下界,则 n = ⌊ b ⌋ n=\lfloor b\rfloor n=b也是 S S S的下界,根据良序原理和上面的定理就可以得出 S S S是良序集。
推论 任何有上界的整数集有最大元。
证明:对有上界 b b b的整数集 S S S,取 S ′ = { − s ∣ s ∈ S } S'=\{-s|s\in S\} S={ssS},再由上面的推论易知其成立。


  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Guava Ordering是一个用于排序的工具类,它为构建复杂的比较器提供了一种流畅的风格。通过使用Guava Ordering,我们可以根据自定义的规则对集合中的元素进行排序。 在Guava Ordering中,有三种静态方法用于创建Ordering排序器:natural()、usingToString()和from(Comparator)。natural()方法使用自然排序规则生成排序器,即从小到大的顺序。usingToString()方法根据元素的toString()方法返回值进行排序。from(Comparator)方法根据给定的Comparator生成排序器。 创建Ordering排序器后,可以使用它对集合或元素进行操作。常见的方法包括sortedCopy(List)、immutableSortedCopy(Iterable)、min(E, E)和max(E, E)等。sortedCopy(List)方法返回一个已排序的List副本,immutableSortedCopy(Iterable)方法返回一个不可变的已排序集合,min(E, E)方法返回两个元素中较小的那个,max(E, E)方法返回两个元素中较大的那个。 下面是一个示例代码,展示了如何使用Guava Ordering对People类的age属性进行排序: List<People> peopleList = new ArrayList<People>() { { add(new People("A", 33)); add(new People("B", 11)); add(new People("C", 18)); } }; Ordering<People> ordering = Ordering.natural().onResultOf(new Function<People, Comparable>() { @Override public Comparable apply(People people) { return people.getAge(); } }); for (People p : ordering.sortedCopy(peopleList)) { System.out.println(MoreObjects.toStringHelper(p) .add("name", p.getName()) .add("age", p.getAge())); } 这段代码中,我们首先创建了一个包含People对象的List。然后使用Ordering.natural().onResultOf()方法创建了一个排序器,该排序器按照People对象的age属性进行排序。最后,我们通过ordering.sortedCopy()方法将集合按照排序规则进行排序,并打印排序后的结果。 通过使用Guava Ordering,我们可以轻松地实现各种排序需求,并且可以方便地链式调用方法来定制和增强现有的比较器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值