精华内容
下载资源
问答
  • 向量不能比较大小,但向量的模可以比较大小。2、零向量:长度为0的向量,其方向任意的,零向量与任意向量平行。3、单位向量:模为1个单位长度的向量。4、平行向量(共线向量):方向相同或相反的非零向...

    86e10d4f54810cbc78a8010126e3528f.gif

    《平面向量》内容包括:向量的概念;向量的表示方法;平面向量的基本定理;平面向量的数量积等。

    今天,小七就带领同学们一起来看看本章的知识点!

    【知识点归纳】

    一、向量的概念

    1、向量:既有大小又有方向的量。向量不能比较大小,但向量的模可以比较大小。

    2、零向量:长度为0的向量,其方向是任意的,零向量与任意向量平行。

    3、单位向量:模为1个单位长度的向量。

    4、平行向量(共线向量):方向相同或相反的非零向量。

    5、相等向量:长度相等且方向相同的向量。

    二、向量的表示方法

    1、几何表示法:用带箭头的有向线段表示,注意起点在前,终点在后;

    2、符号表示法:用一个小写的英文字母来表示;

    3、坐标表示法:在平面内建立直角坐标系,以与轴、轴方向相同的两个单位向量。

    三、平面向量的基本定理

    如果两个向量a、b不共线,那么向量p与向量a、b共面的充要条件是:存在唯一实数对x、y,使p=xa+yb。

    这项定理说明了平面向量可以沿任意指定的两方向分解,同时也说明了由任意两向量可以合成指定向量,即向量的合成与分解 。当两个方向相互垂直时,其实就是把他们在直角坐标系中分解,此时(x,y)就称为此向量的坐标。(此向量的起点为原点)所以此定理为向量的坐标表示提供了理论依据。

    四、平面向量的数量积

    1、数量积的性质:

    设a、b为非零向量,则:

    ①设e是单位向量,且e与a的夹角为θ,则e·a=a·e=|a||e|cosθ;

    ②a⊥b等价于a·b=0;

    ③当a与b同向时,a·b=|a||b|;当a与b反向时,a·b=-|a||b| 、a·a=|a|²=a²或|a|=√a·a;

    ④|a·b|≤|a|·|b|,当且仅当a与b共线时,即a∥b时等号成立;

    ⑤cosθ=a·b╱|a||b|(θ为向量a.b的夹角);

    ⑥零向量与任意向量的数量积为0。

    2、向量数量积的运算律

    (1)交换律:a·b=b·a;

    (2)数乘结合律:(λa)·b=λ(a·b)=a·(λb);

    (3)分配律:(a+b)·c=a·c+b·c。

    3、平面向量数量积的几何意义

    ①一个向量在另一个向量方向上的投影:

    设θ是a、b的夹角,则|b|cosθ叫做向量b在向量a的方向上的投影|a|cosθ叫做向量a在向量b方向上的投影。

    ②a·b的几何意义:

    数量积a·b等于a的长度|a|与b在a的方向上的投影|b|cosθ的乘积。

    ★注意:两向量的数量积是数量,投影也是数量。射影是矢量。

    【典型例题】

    7ed2c80dedc65d1399614d08281049bc.png

    *图文素材来源于教材、网络,由“七天网络高中”整理,整理不易,欢迎收藏。如有侵权,请联系删除。

    展开全文
  • 这篇文章主要介绍了Java中的向量(Vector)的应用,Vector也...但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于“动态数组”的功能,向量与数组的重要区别之一就是向量的容量可变的。可以...

    这篇文章主要介绍了Java中的向量(Vector)的应用,Vector也是Java中比较常用的一个类,需要的朋友可以参考下

    Vector(向量)是 java.util 包中的一个类,该类实现了类似动态数组的功能。

    向量和数组相似,都可以保存一组数据(数据列表)。但是数组的大小是固定的,一旦指定,就不能改变,而向量却提供了一种类似于“动态数组”的功能,向量与数组的重要区别之一就是向量的容量是可变的。

    可以在向量的任意位置插入不同类型的对象,无需考虑对象的类型,也无需考虑向量的容量。

    向量和数组分别适用于不同的场合,一般来说,下列场合更适合于使用向量:

    如果需要频繁进行对象的插入和删除工作,或者因为需要处理的对象数目不定。

    列表成员全部都是对象,或者可以方便的用对象表示。

    需要很快确定列表内是否存在某一特定对象,并且希望很快了解到对象的存放位置。

    向量作为一种对象提供了比数组更多的方法,但需要注意的是,向量只能存储对象,不能直接存储简单数据类型,因此下列场合适用于使用数组:

    所需处理的对象数目大致可以确定。

    所需处理的是简单数据类型。

    向量的使用

    向量必须要先创建后使用,向量的大小是向量中元素的个数,向量的容量是被分配用来存储元素的内存大小,其大小总是大于向量的大小。下面是 Vector 的构造方法:

    Vector(); //①创建空向量,初始大小为 10

    Vector(int initialCapacity); //②创建初始容量为 capacity 的空向量

    Vector(int initialCapacity,int capacityIncrement); //③创建初始容量为 initialCapacity,增量为 capacityIncrement 的空向量

    使用第①种方式系统会自动对向量进行管理。

    使用第②种方式,会创建一个初始容量(即向量可存储数据的大小)为 initialCapacity 的空向量,当真正存放的数据超过该容量时,系统会自动扩充容量,每次增加一倍。

    使用第③中方式,会创建一个初始容量为 initialCapacity 的空向量,当真正存放的数据超过该容量时,系统每次会自动扩充 capacityIncrement。如果 capacityIncrement 为0,那么每次增加一倍,。

    通过分配多于所需的内存空间,向量减少了必须的内存分配的数目。这样能够有效地减少分配所消耗的时间,每次分配的额外空间数目将由创建向量时指定的增量所决定。

    除了构造方法外,向量类还提供了三个属性变量,分别为:

    protected int capacityIncrement; //当向量大小不足时,所用的增量大小

    protected int elementCount; //向量的元素个数

    protected Object elementData[]; //向量成员数据所用的缓冲

    一旦创建了Vector类的实例,就可以用其方法来执行插入、删除以及查找对象等操作,向量类提供了极为丰富的方法,下表给出了一些常用的方法:

    8e9ae4ec055d0762723600d6ecaf3713.png

    4067960d4452df34cfe250ed030ac5ce.png

    与数组相同,向量对象也可以通过 new 操作符实现。其语句为:

    Vector vector=new Vector();

    展开全文
  • vector2向量

    2020-11-27 20:48:29
    //vector2; down;(0,-1)的向量;//以此类推up,right,left one;(1,1)的向量; zero;(0,0)的向量;...可以比较向量大小;不用开方比较,节约性能 ...//向量是结构体,是值...不能直接修改; Vector pos=this.transform.pos
    //vector2;
    down;(0,-1)的向量;//以此类推up,right,left
    one;(1,1)的向量;
    zero;(0,0)的向量;
    magnitude;//返回向量的长度
    sqrmagnitude;//返回向量长度平方;可以比较向量大小;不用开方比较,节约性能
    normalized;//初始化向量长度为1;
    
    //向量是结构体,是值类型只能整体赋值;
    this.transform.position.x=10;//错误;不能直接修改;
    Vector pos=this.transform.position;
    pos.x=10;
    this.transform.position=pos;//正确;
    
    //vector2中的方法
    Normalized;//单位化向量,会对向量产生影响
    Equals;//判断两向量是否相等,也可用==;
    Set;//设定向量,
    ToString;//转化为字符串
    
    //静态方法:Vector2.方法名//都有返回值
    Angle(向量1,向量2)//取向量1到向量2的夹角;
    Magnitude(Vector2 vector,float maxlenght);//限定长度
    Distance(vector2 a,vector b);//a与b坐标间长度;
    Lerp(vector a,vector b,float x);//插值运算
    LerpUnclamped(a,b,float  x);//
    Max(a,b);
    Min(a,b);//长度
    MoveTowards(a,目标位置,float x);//a点沿着目标运动x米,得到的是返回值,不改变a的值,因此要改变时,要将这个赋值给a;
    Scale(a,b);//把a,b,的x与y坐标相乘,然后得到新的坐标;
    
    
    
    
    展开全文
  • 作者: @苏剑林 单位:追一科技研究方向:NLP、神经网络在NLP中,我们经常要去比较两个句子的相似度,其标准方法想办法将句子编码为固定大小的向量,然后用某种几何距离(欧氏距离、cos距离等)作为相似度。...

    a02ed41534f03ff718ccacfcc91cfaa2.png

    作者: @苏剑林

    单位:追一科技

    研究方向:NLP、神经网络

    在NLP中,我们经常要去比较两个句子的相似度,其标准方法是想办法将句子编码为固定大小的向量,然后用某种几何距离(欧氏距离、cos距离等)作为相似度。这种方案相对来说比较简单,而且检索起来比较快速,一定程度上能满足工程需求。

    此外,还可以直接比较两个变长序列的差异性,比如编辑距离,它通过动态规划找出两个字符串之间的最优映射,然后算不匹配程度;现在我们还有Word2Vec、BERT等工具,可以将文本序列转换为对应的向量序列,所以也可以直接比较这两个向量序列的差异,而不是先将向量序列弄成单个向量。

    后一种方案速度相对慢一点,但可以比较得更精细一些,并且理论比较优雅,所以也有一定的应用场景。本文就来简单介绍一下属于后者的两个相似度指标,分别简称为WMD、WRD。

    Earth Mover's Distance

    本文要介绍的两个指标都是以Wasserstein距离为基础,这里会先对它做一个简单的介绍,相关内容也可以阅读笔者旧作《从Wasserstein距离、对偶理论到WGAN》。Wasserstein距离也被形象地称之为“推土机距离”(Earth Mover's Distance,EMD),因为它可以用一个“推土”的例子来通俗地表达它的含义。

    最优传输

    假设在位置

    处我们分布有
    那么多的土,简单起见我们设土的总数量为1,即
    ,现在要将土推到位置
    上,每处的量为
    ,而从i推到j的成本为
    ,求成本最低的方案以及对应的最低成本。

    这其实就是一个经典的最优传输问题。我们将最优方案表示为

    ,表示这个方案中要从i中把
    数量的土推到j处,很明显我们有约束:

    所以我们的优化问题是:

    参考实现

    看上去复杂,但认真观察下就能发现上式其实就是一个线性规划问题——在线性约束下求线性函数的极值。而scipy就自带了线性规划求解函数linprog,因此我们可以利用它实现求Wasserstein距离的函数:

    import numpy as np
    from scipy.optimize import linprog
    
    def wasserstein_distance(p, q, D):
        """通过线性规划求Wasserstein距离
        p.shape=[m], q.shape=[n], D.shape=[m, n]
        p.sum()=1, q.sum()=1, p∈[0,1], q∈[0,1]
        """
        A_eq = []
        for i in range(len(p)):
            A = np.zeros_like(D)
            A[i, :] = 1
            A_eq.append(A.reshape(-1))
        for i in range(len(q)):
            A = np.zeros_like(D)
            A[:, i] = 1
            A_eq.append(A.reshape(-1))
        A_eq = np.array(A_eq)
        b_eq = np.concatenate([p, q])
        D = D.reshape(-1)
        result = linprog(D, A_eq=A_eq[:-1], b_eq=b_eq[:-1])
        return result.fun

    读者可以留意到,在传入约束的时候用的是

    ,也就是去掉了最后一个约束。这是因为
    ,所以 (1) 中的等式约束本身存在冗余,而实际计算中有时候可能存在浮点误差,导致冗余的约束之间相互矛盾,从而使得线性规划的求解失败,所以干脆去掉最后一个冗余的约束,减少出错的可能性。

    Word Mover's Distance

    很明显,Wasserstein距离适合于用来计算两个不同长度的序列的差异性,而我们要做语义相似度的时候,两个句子通常也是不同长度的,刚好对应这个特性,因此很自然地就会联想到Wasserstein距离也许可以用来比较句子相似度,而首次进行这个尝试的是论文《From Word Embeddings To Document Distances》。

    基本形式

    设有两个句子

    ,经过某种映射(比如Word2Vec或者BERT)后,它们变成了对应的向量序列
    ,现在我们就想办法用Wasserstein距离来比较这两个序列的相似度。

    根据前一节的介绍,Wasserstein距离需要知道

    三个量,我们逐一把它们都定义好即可。由于没有什么先验知识,所以我们可以很朴素地将让
    ,所以现在还剩

    显然,

    代表着第一个序列的向量
    与第二个序列的向量
    的某种差异性,简单起见我们可以用欧氏距离
    ,所以两个句子的差异程度可以表示为:

    这便是Word Mover's Distance(WMD)(推词机距离??),大概可以理解为将一个句子变为另一个句子的最短路径,某种意义上也可以理解为编辑距离的光滑版。实际使用的时候,通常会去掉停用词后再计算WMD。

    60de78fc31362047639a82fa868a620c.png
    Word Mover's Distance的示意图,来自论文《From Word Embeddings To Document Distances》

    参考实现

    参考实现如下:

    def word_mover_distance(x, y):
        """WMD(Word Mover's Distance)的参考实现
        x.shape=[m,d], y.shape=[n,d]
        """
        p = np.ones(x.shape[0]) / x.shape[0]
        q = np.ones(y.shape[0]) / y.shape[0]
        D = np.sqrt(np.square(x[:, None] - y[None, :]).mean(axis=2))
        return wasserstein_distance(p, q, D)

    下界公式

    如果是检索场景,要将输入句子跟数据库里边所有句子一一算WMD并排序的话,那计算成本是相当大的,所以我们要尽量减少算WMD的次数,比如通过一些更简单高效的指标来过滤掉一些样本,然后才对剩下的样本算WMD。

    幸运的是,我们确实可以推导出WMD的一个下界公式,原论文称之为Word Centroid Distance(WCD)

    也就是说,WMD大于两个句子的平均向量的欧氏距离,所以我们要检索WMD比较小的句子时,可以先用WCD把距离比较大的句子先过滤掉,然后剩下的采用WMD比较。

    Word Rotator's Distance

    WMD其实已经挺不错了,但非要鸡蛋里挑骨头的话,还是能挑出一些缺点来:

    1、它使用的是欧氏距离作为语义差距度量,但从Word2Vec的经验我们就知道要算词向量的相似度的话,用cos往往比欧氏距离要好;

    2、WMD理论上是一个无上界的量,这意味着我们不大好直观感知相似程度,从而不能很好调整相似与否的阈值。

    为了解决这两个问题,一个比较朴素的想法是将所有向量除以各自的模长来归一化后再算WMD,但这样就完全失去了模长信息了。最近的论文《Word Rotator's Distance: Decomposing Vectors Gives Better Representations》则巧妙地提出,在归一化的同时可以把模长融入到约束条件p,q里边去,这就形成了WRD。

    基本形式

    首先,WRD提出了“词向量的模长正相关于这个词的重要程度”的观点,并通过一些实验结果验证了这个观点。事实上,这个观点跟笔者之前提出的simpler glove模型的观点一致,参考《更别致的词向量模型(五):有趣的结果》。而在WMD中,

    某种意义上也代表着对应句子中某个词的重要程度,所以我们可以设:

    然后

    就用余弦距离:

    得到:

    这就是Word Rotator's Distance(WRD)了。由于使用的度量是余弦距离,所以两个向量之间的变换更像是一种旋转(rotate)而不是移动(move),所以有了这个命名;同样由于使用了余弦距离,所以它的结果在[0,2]内,相对来说更容易去感知其相似程度。

    参考实现

    参考实现如下:

    def word_rotator_distance(x, y):
        """WRD(Word Rotator's Distance)的参考实现
        x.shape=[m,d], y.shape=[n,d]
        """
        x_norm = (x**2).sum(axis=1, keepdims=True)**0.5
        y_norm = (y**2).sum(axis=1, keepdims=True)**0.5
        p = x_norm[:, 0] / x_norm.sum()
        q = y_norm[:, 0] / y_norm.sum()
        D = 1 - np.dot(x / x_norm, (y / y_norm).T)
        return wasserstein_distance(p, q, D)
    
    
    def word_rotator_similarity(x, y):
        """1 - WRD
        x.shape=[m,d], y.shape=[n,d]
        """
        return 1 - word_rotator_distance(x, y)

    下界公式

    同WMD一样,我们也可以推导出WRD的一个下界公式:

    不过这部分内容并没有出现在WRD的论文中,只是笔者自行补充的。

    小结

    文本介绍了两种文本相似度算法WMD、WRD,它们都是利用Wasserstein距离(Earth Mover's Distance,推土机距离)来直接比较两个不定长向量的差异性。这类相似度算法在效率上会有所欠缺,但是理论上比较优雅,而且效果也颇为不错,值得学习一番。

    #投 稿 通 道#

    如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢? 答案就是:你不认识的人。

    总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

    PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。

    来稿标准:

    • 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)

    • 如果文章并非首发,请在投稿时提醒并附上所有已发布链接

    • PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志

    投稿方式:

    • 方法一:在PaperWeekly知乎专栏页面点击“投稿”,即可递交文章

    • 方法二:发送邮件至:hr@paperweekly.site ,所有文章配图,请单独在附件中发送

    • 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通

    关于PaperWeekly

    PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

    加入社区:http://paperweek.ly

    微信公众号:PaperWeekly

    新浪微博:@PaperWeekly

    展开全文
  • Java中的Vector向量

    2015-08-11 11:47:08
    和传统数组相似,都通过索引访问Vector的大小根据需要动态变化,这传统数组无法做到的 Vector与ArrayList比较: 和ArrayLis相似,两者都实现了动态数组!Vector同步访问的,线程安全的,ArrayList线程...
  • 数量之间可以比较大小,而向量之间不能比较大小向量:长度为0的向量 单位向量:长度为1个单位的向量 有向线段:带有方向的线段叫有向线段,其方向由起点指向终点,以A为起点、B为终点的有向线段记做 AB→\...
  • 11. NumPy范数计算监督机器学习问题规则化参数的同时最小化误差,...机器学习、深度学习等计算机领域内用的比较多的就是迭代过程中收敛性质的判断,一般迭代前后步骤的差值的范数表示其大小,常用的二范数,差值...
  • 作者: @苏剑林 单位:追一科技研究方向:NLP、神经网络在NLP中,我们经常要去比较两个句子的相似度,其标准方法想办法将句子编码为固定大小的向量,然后用某种几何距离(欧氏距离、cos距离等)作为相似度。...
  • 方案一:利用预训练好的词向量模型 优点: (1)把词进行语义上的...比较经典的哈工大社会计算与信息检索研究中心同义词词林扩展版 把词条按照树状的层次结果组织到一起,并区分了同义词和近义词,例如: ...
  • 关于几个常用容器类型的比较 初学数据结够,总是不能准确区分几个常用的容器类型,于是在这里将它们做以下比较。 常用的容器类型主要有数组、向量、双端队列和表。由于数组较为熟悉,所以在这里不作说明。一、 ...
  • 尽管 GPU 擅长数据并行任务,但之前的方法要么会在并行性不高的算法(如 k-min selection)上遭遇瓶颈,要么不能有效利用内存的层次结构。为此雷锋网了解到,他们提出一种可用于k-selection的新设计,使其能以高达...
  • 6.21 当数组函数的参数时,为什么sizeof不能正确报告数组的大小? 6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小是...
  • One-hot缺点:表示向量是稀疏表示且表示能力弱,N维度大小向量仅能表示N个单词,并且不能表示语义信息(联系上下文). TF-IDF:是一种用来计算每个单词重要性的关键词抽取的方法,通过计算词频和逆文本频率,在考虑...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 10 1.20 const char *p、char const *p和char *const p有什么区别? 10 复杂的声明 11 1.21 怎样建立和理解非常复杂...
  • 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 10 1.20 const char *p、char const *p和char *const p有什么区别? 10 复杂的声明 11 1.21 怎样建立和理解非常复杂...
  • 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 39 1.20 const char *p、char const *p和char *const p有什么区别? 39 复杂的声明 40 1.21 怎样建立和理解非常复杂的...
  • 6.21 当数组函数的参数时,为什么sizeof不能正确报告数组的大小?  6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。  6.23 sizeof返回的...
  • 发生周期性变化的信号,因待测信号的不规则,不能直接送入FPGA 芯片中处 理,所以应该首先对待测信号进行放大、降压、与整形等一系列处理。 (2)分频电路 将处理过的信号4 分频,这样可以将频率计的测量范围扩大4 倍...
  •  数组不能被赋值 6.5 为什么不能这样向数组赋值?externchar*getpass();charstr[10];str=getpass("Enterpassword:"); 6.6 既然不能向数组赋值,那这段代码为什么可以呢?intf(charstr[]){if(str[0]=='\0')str=...
  • 利用线性索引结构进行密文检索并排序时,请问除了安全的KNN算法还有什么方法能让加密后的内积与加密前计算的内积... 或许也需要密文计算的内积与加密前计算的内积相等,只要能比较大小就行,在服务器端能够实现排序
  • 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 1.20 const char *p、char const *p和char *const p有什么区别? 复杂的声明 1.21 怎样建立和理解非常复杂的声明?例如定义...
  • 如Foxit Reader不能阅读,请使用Adobe Reader/Acrobat阅读! 内容简介  本书以问答的形式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。书中列出了C用户经常问的400多个经典问题,涵盖了初始化...
  • 7、可以随意更换base Map中bln文件了(图6),以前的版本是不可以,如果想要更新Base图, 还得删除这个图件,打开bln文件重新做base图。 8、图形的色标设置更为方便,有预设好的色标可以使用(图7),并且还很...
  • 深度学习笔记

    2019-02-25 18:56:06
    因为过拟合的情况下,参数的个数会比较多,而如果加上这个惩罚项,就使很多参数值为0,这样,输入向量的很多维都因为重要,而在上面加入权重,从而防止过拟合。还可以按照下面的公式来理解:控制了w的大小,...
  • 在面对两个向量之间的差异时,L2比L1更加不能容忍这些差异,相对于1个巨大的差异,L2距离更倾向于接受多个中等程度的差异。 2. k-Nearest Neighbor分类器存在以下不足 分类器必须记住所有训练数据并将其存储起来,以...
  • 例如,如果源输入表达式书写错误,并且这种错误解释器内核不能给出自动的纠正策略,则应该报错而立即终止程序;如果解释器内核可以自动纠正之,则应该继续执行,但最好还是应该附加一个警告信息。 以上所述的某种...
  • 面试题17:合并两个排序的链表:要注意特殊输入,如果输入空链表,不能崩溃。 面试题18:树的子结构:多出需要判断指针是不是None,避免访问空指针而造成程序崩溃。 面试题19:二叉树的镜像:需要判断输入的结点为...
  • 如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。7. 说明“栈”和“堆”的差别. 答:栈一块按后进先出(FIFO)规则访问的存储区域,用来...
  • 1 基于遗传算法的TSP算法(王辉) TSP (旅行商问题—Traveling Salesman Problem),典型的NP完全问题,即其最坏情况下的时间复杂性随着问题规模的增大按指数方式增长,到目前为止不能找到一个多项式时间的有效算法...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

向量是不能比较大小的