精华内容
下载资源
问答
  • 不可与之相比
    万次阅读
    2021-08-05 11:37:35

    根据最新数据显示,截至2021年5月,我国IPv6地址拥有量达到59030块(/32),位居世界第一,我国IPv6活跃用户数达5.28亿,占互联网网民总数的53.39%,我国IPv6应用和部署取得了较大成就。

    而在不久前,三部门联合印发了《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》,进一步要求各级各地政府和企业加快IPv6的应用和部署,由此可以看出我国对于下一代互联网协议的重视程度和发展决心。

    那么与IPv4相比,IPv6协议到底具有哪些优点呢?

    1.更大的地址空间

    IPv4中规定IP地址长度为32位,即拥有2^32个地址,约为42.9亿个,而当前互联网用户已突破40亿且仍保持高速增长,IPv4地址随时面临枯竭问题。而IPv6中IP地址的长度为128位,其地址容量则达到了2^128个,远远大于IPv4地址容量,足以满足日益增长的互联网用户以及未来物联网地址的分配需求。

    2.报文结构更精简

    IPv4的报文长度不固定,且有一个变化无常的 option 字段来实现一些特定功能,因此整体结构比较复杂。而IPv6的报文长度则是固定的,且将 option 字段、分片的字段的功能转移到IPv6扩展报头中,这就极大精简了 IPv6 的报文结构,更多的功能通过添加不同的扩展报头来实现。

    3.内容获取速度更快

    IPv6的地址分配遵循“聚类”原则,可使路由器在路由表中用一条记录来表明一片子网,这样大大减小了路由器中路由表的长度,路由器转发数据包的速度也得到了提升,这也使得通过IPv6连接并获取内容的速度相较IPv4更快。

    4.网络实名制可行

    IPv6普及的另一个重要应用是网络实名制下的互联网身份认证。由于IP资源丰富,在运营商为用户办理入网申请时,可直接为每个用户分配一个固定的IP,实现了真实用户与IP地址的一一对应。当一个上网用户的IP固定之后,其上网记录、行为将在任何时间段内有据可查。

    5.支持层次化网络结构

    IPv6 不再像 IPv4 一样按照 A、B、C等分类来划分地址,而是通过IANA->RIR->ISP 这样的顺序来分配的。IANA 是国际互联网号码分配机构,RIR是区域互联网注册管理机构,ISP是一些运营商。IANA 会合理给五个 RIR来分配 IPv6 地址,然后五个 RIR 再向区域内的国家合理配置地址,每个国家分配到的地址再交给 ISP 运营商,然后运营商再来合理的分配资源给用户。在这个分配过程中将能够尽力避免出现网络地址子网不连续的情况,这样可以更好地聚合路由,减少骨干网络上的路由条目。

    6.网络安全性更高

    每个IPv6数据包的完整性和真实性都是通过加密和防止数据包欺骗的技术来保证的。在使用IPv6网络中,用户可以对网络层的数据进行加密并对IP报文进行校验,这极大地增强了网络安全性能。

    IPv6作为下一代互联网协议,是互联网升级演进的必然趋势和网络技术创新的重要方向。随着5G、工业互联网等新技术的持续演进,万物互联已成为未来网络发展的主要方向,IPv6网络应用的诸多优势将会在工业互联网、智能家居、自动驾驶等新兴领域得到全面体现并发挥出重要的作用。

    更多相关内容
  • python 序列的有序无序可变不可变的理解 不可变数据类型: 是指变量的值发生改变时,其对应的内存地址也发生改变。 可变数据类型:是指变量的值发生改变时,其对应的内存地址不发生改变 1. 列表(有序可变): 循环...

    python 序列的有序无序可变不可变的理解

    不可变数据类型: 是指变量的值发生改变时,其对应的内存地址也发生改变。
    可变数据类型:是指变量的值发生改变时,其对应的内存地址不发生改变
    不可变数据类型:整形int,浮点型,字符串,复数,布尔,元组,固定集合
    可变数据类型:列表,字典,集合
    可变意味着:将数据传入方法后,可以直接改变原有数据对象
    1. 列表(有序可变):
    循环遍历时按顺序输出,每个元素又固定的索引。
    可以对指定的索引位置进行元素的增加、删除、修改;在函数中可以直接对列表进行操作,不需要返回操作后的列表。
    2. 字符串(有序不可变):
    字符串内的元素不能单独进行增、删、改操作,只能修改整个字符串。
    3. 元组(有序不可变):
    有序:

    	a = ('test','art',3,4,5)
    	for i in a:
    	    print(i)
    
    输出结果:'test','art',3,4,5
    只能通过索引查询,不能对指定索引位置进行增、删、改操作
    

    4. 字典(无序可变):
    不可变:键必须唯一且为不可变对象,如:字符串,数字,元组。
    字典可以进行增加,修改,删除等操作,
    修改或添加:字典[键] = 表达式;
    删除:del 字典[键]);
    5. 集合(无序可变):
    集合常用于进行去重和关系运算
    创建空集合:set()
    创建具有默认值的集合:{元素1,元素2} 或 set(可迭代对象)
    添加:add
    删除:discard
    运算符:并:| 交:& 差:- 对称差集:^

    展开全文
  • 详解Python中的可哈希对象与不可哈希对象(二)

    千次阅读 多人点赞 2019-10-30 16:49:52
    前言:我们经常会听见很多的概念,哈希值...鉴于篇幅较多,本次系列文章将分为两篇来说明,此为第二篇,会涉及到一下概念,可变对象mutable与不可变对象inmutable,可哈希hashable与不可哈希unhashable,为什么字典...

    前言:我们经常会听见很多的概念,哈希值,哈希表,可哈希对象,不可哈希对象,散列表,字典,映射,等等,那么这么多的概念后面到底又有什么区别和联系,它们的本质又是怎么样的,本此系列文章将针对这些概念进行说明,鉴于篇幅较多,本次系列文章将分为两篇来说明,此为第二篇,会涉及到一下概念,可变对象mutable与不可变对象inmutable,可哈希hashable与不可哈希unhashable,为什么字典dict的键Key一定要是可哈希的
    前一篇文章参考:详解Python中的可哈希对象与不可哈希对象(一)——哈希表与哈希值

    一、可哈希对象与不可哈希对象的直观理解

    前提:能够较好地理解什么是可变对象mutable与不可变对象inmutable。以及明白哈希值value的唯一性。

    1.1 什么是可哈希(hashable)?

    • 简要的说可哈希的数据类型,即不可变的数据结构(数字类型(int,float,bool)字符串str、元组tuple、自定义类的对象)

    (1)为什么不可变数据类型是可哈希hashable的呢?哈希有啥作用?

    对于不可变类型而言,不同的值意味着不同的内存,相同的值存储在相同的内存,如果将我们的不可变对象理解成哈希表中的Key,将内存理解为经过哈希运算的哈希值Value,这不正好满足哈希表的性质嘛。如下:

    a=100
    b=100
    c=101
    
    id(a) #1420082496
    id(b) #1420082496 # a,b是一样的
    id(c) #1420082528 # c是不一样的

    当然了,这不是说哈希值就是id地址,这还是不一样的,参见下面:

    In [21]: hash(a)
    Out[21]: 100     # 并不是说哈希值就是它本身哈,一个对象的哈希值是什么取决于__hash__魔术方法的运算过程
    
    In [22]: hash(b)
    Out[22]: 100
    
    In [23]: hash(c)
    Out[23]: 101

    再看一个例子:

    In [24]: x="ilove"
    
    In [25]: y="i"+"love"
    
    In [26]: z="iloveyou"
    
    In [27]: id(x),id(y),id(z)
    Out[27]: (3122841661600, 3122841661600, 3122841929584)  # x,y的id是一样的
    
    In [28]: hash(x),hash(y),hash(z)
    Out[28]: (4255912298523051991, 4255912298523051991, -3820205610162521985) # x,y 的哈希值是一样的

     

    1.2 什么是不可哈希(unhashable)?

    • 同理,不可哈希的数据类型,即可变的数据结构 (字典dict,列表list,集合set)

    对于可变对象而言,比如一个列表,更改列表的值,但是对象的地址本身是不变的,也就是说不同的Key,映射到了相同的Value,这显然是不符合哈希值的特性的,即出现了哈希运算里面的冲突。如下:

    a=[1,2,3]
    print(id(a))
    
    def func(p):
        p.append(4)
        return p
    
    b=func(a)
    print(id(b))
    '''
    2399750863880   是一样的哦
    2399750863880
    '''

    如果此时对a和b使用hash函数,则会出错,如下:

    TypeError: unhashable type: 'list'

    总结:上面的说明仅仅是感性上的认识哦,并不是本质原因哈!

     

    二、从实质上来理解hashable和unhashable对象

    2.1 什么是hashable(可哈希性)

    An object is hashable if it has a hash value which never changes during its lifetime (it needs a __hash__() method), and can be compared to other objects (it needs an __eq__()or __cmp__() method). Hashable objects which compare equal must have the same hash value.

    如果一个对象是可哈希的,那么在它的生存期内必须不可变(而且该对象需要一个哈希函数),而且可以和其他对象比较(需要比较方法).比较值相同的对象一定有相同的哈希值,即一个对象必须要包含有以下几个魔术方法:

    • __eq__():用于比较两个对象是否相等
    • __cmp__():用于比较两个对象的大小关系,它与__eq__只要有一个就可以了
    • __hash__():实际上就是哈希函数(散列函数),返回经过运算得到的哈希值

    前面既然说了整数int是可哈希对象,不放我们看一下它具不具备这几个魔术方法:

    In [51]: a=100
    
    In [52]: dir(a)
    Out[52]:
    [...
     '__eq__',
     ...
     '__hash__',
    ...
    ]

    我们发现他的确具有上面说的这几个魔术方法。

    列表是不可哈希的,我们看一下列表的魔术方法有哪一些:

    In [54]: a=[1,2,3]
    
    In [55]: dir(a)
    Out[55]:
    [...
     '__eq__',
    ...
     '__hash__',
    ...
    ']

    我们发现一个问题,为什么可变对象list明明是不可哈希的,为什么也有着两个方法呢?

    因为所有类型的基类object中实现了这两个魔术方法,但是并不是说有这两个方法就一定是可哈希的,关键是要如何实现__eq__()方法和__hash__()方法,list并没有实现,只是有这几个魔术方法而已,在实现的里面出发了上面的异常。我们可以看一下基类object的魔术方法,如下:

    In [56]: dir(object)
    Out[56]:
    [...
     '__eq__',
     ...
     '__hash__',
    ...
    ]

    2.2 自定义类型的对象是不是可哈希的呢?

    看一下如下代码:

    class Animal:
        def __init__(self, name):
            self.name=name
        def eat(self):
            print("i love eat !")
            
    a=Animal("dog")
    print(hash(a))  # 83529594295

    我们发现自定义的类的对象是可哈希的,虽然我们不知道这个哈希值是如何得到的,但是我们知道他的确是可哈希对象。

    前面说了哈希值的计算实际上是通过__hash__魔术方法来实现的,我们不妨自定义一下类的魔术方法,如下:

    class Animal:
        def __init__(self, name):
            self.name=name
        def __hash__(self):  # 自定义哈希函数
            return 1000      # 注意哈希函数的返回值要是integer哦!
        def eat(self):
            print("i love eat !")
            
    a=Animal("dog")
    print(hash(a))  # 返回 1000

    现在对于什么是python的可哈希对象和哈希函数如何实现应该有了比较清楚的了解了。

    三、为什么字典 key 必须是不可变的(可哈希hashable)?

    3.1 字典如何在 CPython 中实现?

    CPython 的字典实现为可调整大小的哈希表。与 B-树相比,这在大多数情况下为查找(目前最常见的操作)提供了更好的性能,并且实现更简单。

    字典的工作方式是使用 hash() 内置函数计算字典中存储的每个键的 hash 代码。hash 代码根据键和每个进程的种子而变化很大;例如,"Python" 的 hash 值为-539294296,而"python"(一个按位不同的字符串)的 hash 值为 1142331976。然后,hash 代码用于计算内部数组中将存储该值的位置。假设您存储的键都具有不同的 hash 值,这意味着字典需要恒定的时间 -- O(1),用 Big-O 表示法 -- 来检索一个键。

    3.2 字典 key 必须是不可变的(可哈希hashable)

    字典的哈希表实现使用从键值计算的哈希值来查找键

    (1)为什么可变对象不能作为键Key?

    先来看一个简单的例子:

    d = {[1, 2]: '100'}  # 构造一个字典,key是列表[1,2] ,是一个可变对象,是不可哈希的
    print(d[[1, 2]])     # 通过key去访问字典的值,触发keyerror异常

    为什么会触发异常呢?哈希按其地址(对象 id)列出的。在上面的两行代码中,第一行中的key是一个列表对象[1,2],第二行中要访问的的时候的那个key虽然也是[1,2],但是由于列表list是可变对象,虽然这两行的列表值一样,但是他们并不是同一个对象,它们的存储地址是不一样的,即id是不一样的,id不一样也导致了根据id计算得到的哈希值是不一样的,自然没有办法找到原来的那一个[1,2]的哈希值在哪里了。

    注意:这需要能够很好的理解可变对象与不可变对象的内存分配才好哦!

    (2)为什么不可变对象能作为键Key?

    将上面例子中的列表[1,2]换成元组(1,2),先来看一个简单的例子:

    d = {(1, 2): '100'}  # 构造一个字典,key是元组(1,2) ,是一个不可变对象,是可哈希的
    print(d[(1, 2)])     # 通过key去访问字典的值,打印 '100'

    为什么这里不会触发异常呢?哈希按其地址(对象 id)列出的。在上面的两行代码中,第一行中的key是一个元组对象(1,2),第二行中要访问的的时候的那个key也是(1,2),但是由于元组tuple是不可变对象,那么这两行的元组值一样,所以它们的存储地址是一样的,即id是一样的,id一样也导致了根据id计算得到的哈希值是一样的,哈希值一样我自然可以搜索得到那个100在哪个地方了。

    (3)总结:

    字典的key一定要是不可变对象,要是能够哈希的对象,即hashable对象,包括:

    数字类型(int,float,bool)字符串str、元组tuple、自定义类的对象,这几类,比如下面的字典:

    class Animal:
        def __init__(self, name):
            self.name=name
        def __hash__(self):  # 自定义哈希函数
            return 1000      # 注意哈希函数的返回值要是integer哦!
        def eat(self):
            print("i love eat !")
            
    a=Animal("dog")
    # print(hash(a))  # 返回 1000
    
    
    d={100:"a",     # 整数作为key
       100.1:"b",   # 浮点数作为key
       True:"c",    # 布尔值作为key
       "name":"d",  # 字符串作为key
       (1,2):"e",   # 元组作为key
       a:"f"}       # 自定义对象作为key
    
    for k in d.keys():
        print(d[k])
    '''
    a
    b
    c
    d
    e
    f
    '''

     

     

    展开全文
  • 可数集合与不可数集合

    万次阅读 多人点赞 2015-07-22 00:16:30
    集合,set,就是将一些确定的东西...对于 S 中的元素 a,me 们说 a ∈ S (a 属于 S),当然如果 a 在 S 中,me 们就说 a ∉ S (a 属于 S)。 集合中元素的个数,有时候是有限 (finit) 的,有时候不是有限的,比如 {

    集合,set,就是将一些确定的东西放在一起形成的 object,比如 {1 2 3 4 5}、{张三 李四 王五 赵六}。集合中的元素不区分顺序,相同的元素认为是同一个元素。对于 S 中的元素 a,me 们说 a ∈ S (a 属于 S),当然如果 a 不在 S 中,me 们就说 a ∉ S (a 不属于 S)。

    集合中元素的个数,有时候是有限 (finit) 的,有时候不是有限的,比如 {1 2 3 4 5} 这个集合有 5 个元素,{1 2 3 4 5 6 7 8 ..} 自然数集合就不是有限集合。集合的元素的个数,又叫基数;之所以用基数这个说法,是因为对于无限集合来说“个数”是一个太容易引起混淆的词。有限集合的基数即是通常说的个数了,都是自然数,而且它们还可以比较大小,反映集合中元素的多少。对于无限集合肿么比较元素多少呢?O__O"…

    也许 me 们会说自然数是有无限多,正奇数也是无限多的,那这两个无限谁多呢?正奇数是自然数的真子集,me 们可能认为自然数数目要多一些。不过这种一个集合属于另一个集合真子集的判断标准,几乎不可以推广,而且矛盾也比较多。自然数包括正奇数和正偶数,正奇数个数和正偶数个数,me 们赶脚应该是“不相伯仲”的,而自然数的个数是不是就是正奇数个数的两倍呢?

    后来创立集合论的康托给出了一个评判标准:如果两个集合 A 、B 的元素可以建立一一对应关系,那 me 们就说它们的基数相等。这个标准对于有限集合来说是成立的,所有有 4 个元素的集合,比如 {1 3 5 7} 、{2 4 6 8}、{张、王、李、赵} 元素的个数相等,它们和 {1 2 3 4 5} 有 5 个元素的集合相比基数则不一样。现在拿“一一对应”来评判无限集合。按可以一一对应建立相等的观念,那么正奇数个数 (2N+1) 和正偶数 (2N) 个数,或是说基数是一样的,自然数 (N) 和正奇数的个数也是一样多的,因为自然数 N 可以和正奇数 2N+1 建立一一对应关系,比如 0 ↔ 1,1 ↔ 3,2 ↔ 5, 3 ↔ 7,4 ↔ 9,...

    有限集合与它的真子集的基数(个数)不可能相等,也就是不能建立一一对应关系;而且显而易见的是,真子集的基数要小。而对于无限集合来说,比如自然数来说,它可以与它的某一个真子集比如正奇数,建立一一对应关系,它们的基数相同。对于任意一个无限集合 S,毫无疑问 me 们可以抽取一个序列 e1, e2, e3, ... en,... ,所以 me 们应该很容易从 S 中抽取一个真子集,然后 S 和其真子集 S' 一一对应,比如 S 去掉 e1 形成 S' 。(对应关系应该很容易猜出来。)

    所以,me 们可以大胆滴说,有限集合和无限集合区分的标志特征(之一)就是,无限集合可以与自己的真子集等势。

    可数集合与不可数集合

    可数,或是可以枚举,就如名字所言,可以 one by one 滴数,能全部数到就是可数的,否则就是不可数的。有限集合是可数的,因为 10 个元素 me 数 10 次就数完了;自然数可以按着顺序一直数下去,虽然不会结束,但是 me 们能数到每一个自然数,所以也属于可数集合。对于无限集合,如果能和自然数建立一一对应的就是可数集合,否则就是不可数集合。

    有很多集合都是无限可数的,比如正奇数 1 3 5 7 9 11... 和 正偶数 2 4 6 8 10 12 集合。下面有一些可能意想不到的结论,可以围观一下:

    1. 整数集合是可数的,比如 0 -1 1 -2 2 -3 3 -4 4 -5 5 -6 6...
    2. 所有的自然数对 (m,n) 是可数的,比如 (0,0) (0,1) (1,0) (0 2) (1 1) (2 0) (0 3) (1 2) (2 1) (3 0) ,应该可以看出来规律的;
    3. 分数 m/n 的集合是可数的,如果将相同的分数视作一个的话,比如 1/2 = 2/4 = 3/6;因为有理数都可以表示成分数,可数集合的子集也是可数的,所以,有理数是可数的;

    实数集合是不可数的

    上面说的每个可数集合,me 们都可以用手指头一个一个地数下去,而且没有一个会遗漏。me 们武断滴认为实数集合比自然数集合多得多,但是是不是也会想有理数那么样可数呢?如果可数,me 们就得去找一一对应关系,不过不好找,找很多个到最后可能发现也不对。最后有人发现可以用反证法证明,实数集合是不可数的,其中会用到有名的对角化原理

    1. [0,1) 该实数集合是不可数的;
    2. [0,1) 和实数集合 R 是等势的,所以,实数集合也是不可数的;
    3. [0,1) 和自然数 N 的幂集 2N 也是等势的;

    证明 [0,1) 是不可数的

    [0,1) 之间的实数,实际上就是小于 1 的小数(非负),假设这里的实数都是可数的,me 们可以 n1 n2 n3 n4 n5 ... 把所有的 [0.1) 的实数数出来,现在构造一个实数 α,属于 [0,1) 但不等于任一个 nk 。

    me 们看 ni 这个数的第 i 个数字(0、1、2 或是其他),如果是 0 的话,me 们将 α 的第 i 位置为 1 ;如果是 1 的话,me 们将 α 的第 i 位置为 2 ;是 2 的置为 3;... ;是 9 的话置为 0。这样的话,α 不会等于任一个 ni,因为在第 i 个位置上它们的数字总是不一样的(因为改变过...)。但是呢,me 们构造的数确实是一个 [0,1) 的小数。

    也就是说,对于 [0,1) 中的数字,me 们一个一个地数,总会有一些数不到,O__O"…。所以,[0,1) 中的实数不可数。

    [0,1) 和 实数集 R 等势(基数相等,或是说个数相等)

    有了基数相等的判断标准之后,me 们发现自然数 N 和正偶数 2N 个数相等,N 和整数 Z 个数相等,N 和有理数 Q 个数相等。但是,N 和 [0,1) 之间的实数是不相等的,现在要说的是,[0,1) 之间的实数和 R 个数是相等的。

    1. 首先不关心 0,那么 (0,1) 可以很简单滴拉长,比如乘以系数 a 便有了 (0,a),me 们可以平移一下,比如 (-a/2, a/2),也就是 (0,1) 和任意的 (a,b) 都是等势的
    2. (0,1) 如果取倒数 1/x 的话,那么便是 (1, +∞),这也是一个一一的映射关系;
    3. (0,2) 中的 (0,1) 一一对应 (0,1),(1,2) 一一对应 (0,1) 进而一一对应 (1, +∞),所以 (0,2) 和所有的正实数等势
    4. (0.2) 和所有的正实数一一对应,(-2, 0) 和所有的负实数一一对应,那么 (-2,2) 可以和 R 一一对应; (-2,2) 可以和 (0,1) 一一对应,所以(0,1) 和 R 等势
    5. 0 肿么办的问题?实际上 [0,1) 和 (0,1) 等势,0 不是重点,因为如果 me 们抽取两个集合的自然数部分,实际上前者就是比后者多个 0,而 {0,1,2,3,...} 可以和 {1,2,3,4,...} 一一对应,所以,[0,1) 和 R 等势;

    前面说 [0,1) 之间的实数是不可数的,现在说 N 的幂集是不可数的,实际上 [0,1) 和 N 的幂集等势,也就是可以认为它们的个数相等。

    自然数 N 的幂集 (2N) 是不可数的

    1. [0,1) 之间的小数可以用十进制表示,也可以用二进制表示,表示形式是唯一的,0.5 D = 0.1 B,0.25 D = 0.01 B,....
    2. 任意一个小于1 的非负小数,me 们取其二进制形式,比如 0.1101001,如果将小数点后第 i 位对应的 0/1 看成是自然数 i 在某个集合比如 A 中的无/有,那么前面的那个小数就对应自然数的一个子集 {1, 2, 4, 7};所以,任一个小数便可以对应一个自然数的子集,当然,自然数的一个子集,me 们也可以很容易滴写出一个小数,这样的话,便有了 [0,1) 之间的小数与自然数 N 的所有子集的一一对应关系;
    3. 所以自然数的幂集,也就是自然数所有的子集形成的集合,它的基数,或是势,与 [0,1) 之间的实数相等,也有所有的实数的势相等;

    任何集合 S 的幂集 (2S) 都不和 S 等势

    对于有限集合来说是容易证明的的,2n > n (n ∈ {1, 2, 3, 4, .., ,k, ...}) 。对于自然数 N ,或是说可数无穷集合来说,上面也已证明。标题的意思是说,对于非可数无穷 S 来说,其幂集 2S 的势要比 S 的大。先不管怎么证明,这里至少给出了一种方法: 可以在一个集合上不断构造势更大的集合,只要不断滴构造幂集就可以。

    对于无限集合来说,最小的势就是 N 的势,记作 ℵ0。 其幂集的势(又是实数 R 的势) 20 记作 ℵ1,后面依次是 ℵ2,ℵ3,...

    这里的证明暂时略掉。(u 为什么这么吊,为什么 !)

    连续统假设

    前面说了, R 的势和 N 的幂集的势相等,是 20 = ℵ1。 连续统假设就是说,ℵ0 和 ℵ1 之间没有其他的势,这只是一个假设而已,目前既没有证明,也没有否证。

    关于 R 的势的其他一些结论

    前面说了,N 和 2N 的势是一样的,都是 ℵ0,也就是自然数个数和偶数个数是一样多的,下面是一些类似的结论:

    1. 直线上的点和二维平面、三维空间的点是一样多的;O__O"… (ℵ12 = ℵ1 3 = ℵ1)
    2. 10 = (20)0 = 2 0⋅ℵ0 = 20 = ℵ1

    最初只有自然数集合 N,也就是 {0, 1, 2, 3, 4, ...},这里面有没有 0 不是问题的重点,如果有 0 可以说一切都是“无中生有”,如果没有的话,可以说“一切都是从 1 开始”,喜欢闲扯的不妨扯一扯,O__O"…从自然数的加法,到自然数的乘法,到乘方,反过来减法、除法、开方,发现不够减产生了负数;发现不够除有了分数;发现开不尽,有了无理数;当然发现有些不能开方,又有了虚数,O__O"…。

    自然数集合 N,整数集合 Z,有理数集合 Q,实数集合 R,前者都是后者的真子集。关于这些集合,有一些结论 me 们是已经知道的,有一些可能不知道的,现在罗列一下:

    1. 有理数集合 Q 也就是分数集合 m/n,实数集合也就是小数集合;言外之意,所有的分数都有小数表示形式,但是有些小数却不能表示成分数
    2. 小数包括有限小数、无限循环小数和无限不循环小数,前两个都可以表示成分数,而后者,也就是无限不循环小数不可以表示成分数
    3. 无限不循环小数,也就是对应的无理数;实数包括有理数和无理数;π 是无理数;
    4. 代数方程的根,都是代数数;有些数不会是代数方程的根,这些数叫超越数;无理数根号 2 是 x2 = 2 的根,所以是代数数;π 是超越数;

    可数与不可数

    1. 自然数 N 是可数的,整数 Z 是可数的,有理数 Q 也是可数的,可以认为它们的个数都相等,或是说等势,基数相等;
    2. 实数 R 是不可数的,R 包括有理数和无理数;反证可以说明,无理数是不可数的;(两个可数的集合也是可数的)
    3. 代数数是可数的,n 次的代数方程有 n 个根,me 们可以按照 n 和方程的形式以及根的个数,一个一个地去数;超越数是不可数的
    4. N 是可数的,它的幂集 2N 是不可数的;实际上一个集合 S 和它的幂集 2S 不等势,也就是只要不断滴取幂集,那么就有越来越大的“无穷”集合;

    展开全文
  • 原标题:如何理解多元函数与可偏导的关系?谈到多元函数与可偏导时,相信不少人头皮有点发麻。一元函数中,与可导是等价的,但是在多元函数中,与可偏导之间的关系就没那么简单了,这是为什么呢?...
  • comparison 可数 还是 不可

    千次阅读 2019-06-13 09:44:42
    1.不可数名词:比较 2.可数名词:相比; 对比; 对照 英语解释 relation based on similarities and differences examining resemblances or differences qualities that are comparable 例句 factor not ...
  • SparkHadoop相比的优缺点

    万次阅读 多人点赞 2018-09-18 20:56:20
    1. Spark 概述 1.1. 什么是 Spark(官网... ...Spark 是一种快速、通用、扩展的大数据分析引擎,2009 年诞生于加州大学伯克利分校AMPLab,2010 年开源,2013 年 6 月成为 Apache 孵化项目,2014 年 2 月成为 Apache ...
  • 可综合&不可综合

    千次阅读 2014-06-09 23:54:15
    Verilog HDL和VHDL相比有很多优点,有C语言基础的话很容易上手。搜集了一些网上大神的经验总结和书上的例子,所以对于和我一样的初学者,这篇博客应该还是很有提高作用的,至于具体语法,任何一本书都讲的很详细。 ...
  • 我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。 主要是为了 “ 效率 ” 和 “ 安全性 ” 的缘故。 若 String 允许...
  • 物理实体融合射频识别传感技能,应具有标识、感知、通讯、抑制的平安智能体的特征,但并非所有的物理实体均要实现全部功能,有些实体仅需实现标识、通讯等局部功能。 2)异构化特征。智能标识...
  • 物理实体融合射频识别传感技能,应具有标识、感知、通讯、抑制的平安智能体的特征,但并非所有的物理实体均要实现全部功能,有些实体仅需实现标识、通讯等局部功能。 2)异构化特征。智能标识感知...
  • const#define相比,区别和优点超详解总结

    万次阅读 多人点赞 2018-08-23 15:14:07
    一:区别 (1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。 (2)就起作用的方式而言: #define只是... (3)const节省空间,避免不必要的内存分配,提高效率
  • 方法二:(相比方法一这将是一个一劳永逸的做法,推荐!!!)  1.也是先找到自己python 的安装路径,和方法一中的一样;  2.在电脑中,右键打开 我的电脑(此电脑)\属性\高级系统设置\环境变量  如图所示:...
  • 链游从字面上理解是区块链游戏,称作gamefi,...游戏中玩家所有的一切道具、资源甚至角色都是货币化的,供玩家之间自由交易来赚取收益。 对比传统游戏的优点 传统游戏是高度中心化的模式,即游戏公司就是“上帝”
  • 交换机路由器相比的五点优势

    千次阅读 2018-09-17 11:48:38
    下文介绍第三层交换机和路由器相比的五点优点: 1).子网间传输带宽任意分配:传统路由器每个接口连接一个子网,子网通过路由器进行传输的速率被接口的带宽所限制。而三层交换机则不同,它可以把多个端口定义成一个...
  • JavascriptJava相比有多快?

    万次阅读 2021-03-15 21:49:15
    应用程序的性能语言无关。最重要的因素是应用程序架构。然后是算法效率。然后微优化。然后是编译器/解释器的质量。然后是CPU。也许两个之间的其他几个步骤。然而,语言直接起作用。 (当然,如果你在谈论基准测试...
  • mongodbmysql相比的优缺点

    万次阅读 2016-12-06 18:35:43
    关系型数据库相比,MongoDB的优点: ①弱一致性(最终一致),更能保证用户的访问速度: 举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在...
  • Python其他语言相比优缺点 python零基础入门

    万次阅读 多人点赞 2018-05-14 17:03:29
    python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然路,以下是Python其他编程语言的优缺点对比:1.Python优势:简单易学,能够把用其他语言制作的各种模块很轻松地联结在一起。...
  • Wi-Fi 6 5G 相比哪个更快?

    万次阅读 2021-01-13 10:07:10
    随着 iPhone12 的发布,iOS 系统...在这个万物互联的时代,5G 代表移动数据的未来, Wi-Fi 6 则是网络迭代的必然,他们我们的生活不可分割,那么他们到底会给我们带来什么,我们的生活会因为他们有多大改变呢? 5G 5
  • 不可变集合

    万次阅读 2017-03-30 07:13:55
    副作用会让代码的易懂性和正确性打折扣。用于转变全局或静态变量的方法就有副作用。用于转变其部分参数的方法也有副作用。... 若要回答这些问题,可以让实例不可变,这样就不会有副作用了。 通常,
  • 尽管新的电池技术实现了每mm3更高的容量,但电子产品相比,电池仍然体积较大。 能量采集减小电池尺寸并延长电池使用寿命。能量收集技术有多种,包括热电、压电、电磁和光电等技术。对于穿戴设备,利用光和热...
  • 这是我要细细讲述的话题:同时和也大家一起分享一下我的小博客,目前运行状态良好,数据表现也还尚,以“祥子的悲剧—— 骆驼祥子读后感 1000字”为例,来说明,这条数据是最近发布的,但也获得了一定的流量,这是...
  • ”骇客“不可缺少的电脑软件

    万次阅读 2021-12-16 10:45:08
    密 码 探 測 器 : 利 用 溯 雪 以 輕 鬆 的 完 成 基 于 web 形 式 的 各 种 密 码 猜 測 工 作 , 例 如email、forum 中的註冊用户密码等。软体采取多线程编写,除了支援字典和窮举以外,软体最大的特色是可以...
  • 现在CentOS 7已经慢慢成为主流,之前使用最多的6相比,有以下区别: 一、系统初始化技术演变——开机启动流程 CentOS 6:采用了INIT技术,整个开机过程是自检BIOS——MBR引导——GRUB加载——加载内核——...
  • 编码器光电码盘相比的缺点

    千次阅读 2019-04-21 17:08:06
    编码器光电码盘相比有如下三个缺点: 重。显而易见,安装编码器会加重车身重量,当然会使车跑得更慢。而且会改变车身质心的位置,使车身质量分布平衡,导致左右转弯参数对称,不便调试。但是,这并不是最主要...
  • Android Studio好处(eclipse相比

    万次阅读 2015-07-09 18:53:35
    但是相信Google会越来越完善的,学习成本适应阶段是我们做技术一直要保持的心态,一旦上手相信你要离开它了。 具体的优点: 1.超强的代码补全,超强的重构功能(支持xml的关联重命名,自动在xml和...
  • 不可不知的TDR和116蓝屏 不可不知的TDR和116蓝屏 文 / 张银奎 何谓TDR 以“TDR”和“116”为关键词在Bing中搜索,可以看到一个很长的帖子,题目是《分析解决:nvlddmkm.sys导致蓝屏116 TDR错误》,开场第一句话便...
  • 蓝牙5.1蓝牙5.0相比有哪些改进

    万次阅读 2019-02-14 15:22:59
    大部分人对于蓝牙的印象,还停留在诺基亚时代的数据传输功能。那时候文件不大,手机...特别是在无线耳机横行的当下,蓝牙已经成为了手机中不可缺少的功能。时代在进步,蓝牙的应用范围也在不断扩展。未来,蓝牙或许...
  • 嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术等先进技术和具体应用对象...应用于家电、工业、通信、国防等领域。其产品形态丰富多样,市场潜力巨大。那么下面尚观教育小编跟...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 977,596
精华内容 391,038
热门标签
关键字:

不可与之相比