关于集合悖论的通俗理解

2024-04-26 04:08
文章标签 理解 集合 通俗 悖论

本文主要是介绍关于集合悖论的通俗理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

集合分为两类,第一类集合的特征是: 集合本身又是集合中的元素。

属于第一类的例如:所有集合所组成的集合,应该是一个递归定义,具有自吞性:

第二类集合的特征是,集合本身不是集合的元素,属于第二类的例如:直线上点的集合,所有的男人的集合等等,这种没有自吞性的形式比较普遍:

OK,问题来了,如果现在有一个集合A,是所有第二类集合构成的集合,也就是其集合中的元素本身也是集合,而且这个集合是第二类集合,那么它属于哪一类呢?

首先,我们假设它属于第二类,既然它属于第二类,所以它一定满足第二类的
特征,就是它本身不存在于它的子集中(不是它的任何一个元素),也就是说它不是第二类集合,但这显然和前提,也就是,集合本身是第二类集合相矛盾!

那么,就再次假设它属于第一类,既然它属于第一类,所以它也一定满足第一类的特征,就是它本身存在于它的子集中(是它其中的某一个集合元素),根据定义它的元素都是第二类集合,它属于它其中的某个元素,也就表示它是第二类集合,这样又与题设发生了矛盾.

              

总之,这是个无解的问题!要不怎么叫做悖论呢?

更通俗的提法可以看理发师悖论,理发师悖论突出了本质,但是缺少了理论说明和推导,这里用集合论的方法理解,可以映射到理发师悖论的理解上。

理发师悖论的内容是,很早以前的一个村庄里,只有一个理发师,他规定只给而且一定给不给自己理发的人理发,这就引出了一个问题,“他该不该给自己理发?”

如果他给自己理发,那它就是给自己理发的人,按道理他就不应该给自己理发,可是如果他不给自己理发,那他就属于不给自己理发的人,所以他就应该要给自己理发。

这样,无论从哪个前提开始,都推出了这个前提的否命题,根据排中律,命题和否命题只能有一个成立,不可能同时成立,形成悖论。

上面是通俗理解,用集合论的观点来分析

  设A={x|x表示这个村子所有可以自己给自己理发的人}

  设B={y|y表示这个村子里不能自己给自己理发的人}

  C={理发师|这个村子唯一一个理发师,而且只给集合B的人理发}

C是一个理发师,他只给不能给自己理发的人理发。

那么C属于A还是属于B呢?

如果C属于A, 那么C不应该属于A, 如果C属于B,又会推出C不属于B.

这个理发师真纠结!

这篇关于关于集合悖论的通俗理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/936670

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.