首页 > 其他分享 >manim|集合的运算

manim|集合的运算

时间:2022-10-08 12:11:23浏览次数:80  
标签:play 运算 交集 self 元素 差集 集合 manim


目录

前言

都说数学是基础学科,集合论则是基础中的基础,今天我们之所以能这么简便的使用集合的概念,还得感谢一个人——康托尔。康托尔(G·Cantor)作为集合论的创立者,也是数学史上最具有争议的人物之一,然而数学的发展证明了康托尔是正确的,他为数学的发展扫清了障碍,今天我们就来介绍一点集合的知识。

集合与集合的运算

至今很难有人把集合的概念精准完备的定义出来,现代数学把由一些能够确定的东西放在一起并称之为集合,常用大写字母S(set)表示,其中里面确定的东西叫做集合的元素,常用小写字母a表示,于是S与a之间就形成了某种关系,当a在S中,就说a属于S,记作a∈S, 反过来记a∉S,读作a不属于S,任意给定一个元素和一个集合,元素要么属于集合,要么不属于集合,必居其一。 元素属不属于集合是确定的,然而集合里面的元素的多寡又如何衡量呢?这就要用到集合的势。

集合的势是用来度量集合里面元素的多少的,如果集合里面元素是有限的话,那么集合的势就集合里面的元素的个数;如果集合里面元素是无限的话,那么就要用势这个概念来比较大小了。集合除了确定性之外,还有互异性和无序性两条重要性质。

互异性是说集合里面的元素互不相同的,从而每个元素只能出现一次。而无序性顾名思义说的就是集合里面的元素没有先来后到之分,谁在前谁在后都无所谓。

说完了集合的性质就该重点说说集合的运算了。具体有求交集,求并集,求差集,求对称集等运算,还有对应的可视化——Venn图(韦恩图)。

  • 交集

交集是指同时属于两个集合的那些元素组成的集合。设A,B是两个集合,那么A,B的交集可用下面符号关系确定。

manim|集合的运算_并集_02

  • 并集

并集是指只要属于其中一个集合的元素组成的集合,这么说可能有点绕,但是用数学符号表示就清晰明了,设A,B是两个集合,那么A,B的并集可用下面符号关系确定。

manim|集合的运算_并集_04

  • 对称差集

对称差集是指只要属于其中一个集合,但不属于他们交集的那部分的元素组成的集合,这个运算稍微有点复杂,但是用数学符号表示就清晰明了,设A,B是两个集合,那么A,B的对称差集可用下面符号关系确定

用下面图来表示更直白。

manim|集合的运算_参考文献_06

  • 差集

差集顾名思义就是两个集合做差运算,设A,B是两个集合,那么A,B的差集可用下面符号关系确定

manim|集合的运算_并集_08

预览效果

BooleanOperations

代码

接下来,我们用代码将集合的运算渲染出来,大致思路是先画出两个有交集的集合,然后把他们的交集,并集,差集和对称集分别凸显出来并移动分离出来加以标注,并用不同颜色来表示。

from manim import *

class BooleanOperations(Scene):
def construct(self):
ellipse1 = Ellipse(width=4, height = 5, fill_opacity = 0.5, color =BLUE, stroke_width = 10).move_to(3*LEFT) #椭圆并左移3个单位
ellipse2 = Ellipse(width=4, height = 5, fill_opacity = 0.3, color =RED, stroke_width = 10).move_to(1*LEFT) #椭圆并左移1个单位
title_text = Text('Boolean Operation').next_to(ellipse1, 3*UP) #标题,靠近椭圆1, 上面3个单位
ellipse_group = Group(ellipse1, ellipse2, title_text) #组成一个团队
self.add(ellipse_group)

i = Intersection(ellipse1, ellipse2, color = GREEN, fill_opacity = 0.5) #交集
self.play(i.animate.scale(0.25).move_to(5*RIGHT+3*UP)) #缩小并移动
intersection_text = Text('Intersection', font_size=25).next_to(i, LEFT) #交集标题打交集左边1个单位
self.play(FadeIn(intersection_text))

u = Union(ellipse1, ellipse2, color = ORANGE, fill_opacity = 0.5) #并集
self.play(u.animate.scale(0.25).move_to(5*RIGHT+1*UP)) #并集缩小并移动
text3 = Text('Union', font_size=25).next_to(u, LEFT) #并集标题
self.play(FadeIn(text3))

e = Exclusion(ellipse1, ellipse2, color = YELLOW, fill_opacity = 0.5) #非交集
self.play(e.animate.scale(0.25).move_to(5*RIGHT+1*DOWN))
union_text = Text('Exclusion', font_size=25).next_to(e, LEFT)
self.play(FadeIn(union_text))


d = Difference(ellipse1, ellipse2, color = PINK, fill_opacity = 0.5) #差集
self.play(d.animate.scale(0.25).move_to(5*RIGHT+3*DOWN))
text5 = Text('Difference', font_size = 25).next_to(d, LEFT)
self.play(FadeIn(text5))

with tempconfig({'quality': 'medium_quality', 'preview': True}):
scene = BooleanOperations()
scene.render()

参考文献

1,​​集合​​​ 2,​​集合的运算​


标签:play,运算,交集,self,元素,差集,集合,manim
From: https://blog.51cto.com/u_15255081/5737122

相关文章

  • python内置模块decimal模块详解:提供十进制浮点运算支持;主要用来处理小数(四舍五入、精
    前言1、 decimal 模块提供十进制数据类型,并且存储为十进制数序列;2、 decimal 模块提供有界精度:用于存储数字的位数是固定的,可以通过 decimal.getcontext().prec=x ......
  • 线性代数——矩阵的运算(未完待续)
    矩阵的幂运算定义:设A为n阶矩阵,\(A^k=A*A*A...\)定义为A的k次方幂性质:1.\(A^k*A^l=A^{k+l}=A^l*A^k\)2.\((A^k)^l=A^{kl}\)3.\((AB)^k!=A^kB^k\),矩阵乘法并不满足交换......
  • 基本运算
    运算的表述c++的运算是和写在纸上的数学是一样的,也就是说他知道先乘除再加减。%取余数的优先级和乘除一样不过没有大括号中括号,用()嵌套即可。如果实在记不得优先级,直接......
  • idea远程连接云服务器,并将本地代码部署在云端进行运算
    电脑内存和显存过小,需要在云服务器进行运算我的模型,由于一直在自己的电脑上写的代码,于是之间迁移代码到云服务器,只要通过ssh链接到云端后,将python解释器使用云端的解释器就......
  • 如何将String类的的ids转换成list集合
    publicintdeleteSchoolCalendarDetailByIds(Stringids){List<String>list=newArrayList<>();Stringstr[]=ids.split(",");list=Arrays.a......
  • 6.集合与字典
    集合与字典创建集合集合数据的特点集合的常⻅操作字典的应⽤场景创建字典的语法字典常⻅操作字典的循环遍历创建集合创建集合使⽤{}或set(),但是如果要创建......
  • Properties集合的用法
    Properties集合的用法Properties集合是一个唯一和IO流相结合的集合可以使用Properties集合中的store方法,把集合中的临时数据,持久化到硬盘中可以使用Properties集合中......
  • Python示例——负数的位运算
    平时在coding的时候虽然会遇到位运算但一般也都是正数的位运算,今天突然见到了使用负数的位运算,对此十分好奇和困惑,为此做了下了解,于是有了此文。 给出一些位运算的例子:  ......
  • 新卷积运算 | 倍频程卷积降低CNNs的空间冗余(文末提供源码)
    传统的卷积已经普遍被使用,现在陆续出现新的卷积方式,越来越高效,也越来越被他人认可,在性能方面也得到了较大的提升。今天所要分享的是Facebook和新加坡国立大学联手提出的新一......
  • 关系运算符重载
    ......