zoukankan      html  css  js  c++  java
  • 算法的计算复杂性

    计算复杂度

      计算复杂度由算法决定,一个数学问题通常可同时有多个解决算法,而计算复杂度可表述算法的复杂程度,在密码设计和密码分析中具有重要作用。计算复杂性理论不仅反映密码破译的固有困难性,评测密码算法对抗密码破译的实际能力,还能为不同密码算法实现难度的分析与比较提供了方法。

      算法复杂度一般由执行算法所需要的计算时间T(时间复杂度)和计算空间S(空间复杂度)来度量,它们通常可以表示成输入规模$lambda $的函数。在分析算法的复杂度时,通常用${ m O}, ilde { m O},o,Theta $四种方式表示它们之间的渐近程度。

      算法的复杂度通常指时间复杂度,通常分为以下 3类:多项式时间算法复杂度亚指数时间算法复杂度指数时间算法复杂度,三个算法时间复杂度是递增的。若存在常数$a,{n_0}$,当$a > {n_0}$时,满足,则称算法的时间复杂度为$T(n) < af(lambda )$。

    多项式时间算法

      假设$lambda $是输入规模,k 为常数,如果执行此算法的时间复杂度为${ m O}({lambda ^k})$,则称该算法是一个多项式时间算法

    计算复杂度理论中,多项式时间算法被认为是简单的算法。对于一个问题,如果存在多项式时间的解决算法,那么该问题不是一个计算困难问题。

    指数时间算法

      如果执行此算法的时间复杂度为${ m O}({t^{f(lambda )}})$,其中 t 为大于1的常数,此时,若 ${f(lambda )}$是关于$lambda $的一个多项式函数,则称该算法为指数时间算法。

    若解决该问题的算法均是指数时间的算法,那么该问题是计算困难问题。

    亚指数时间算法

      若${f(lambda )}$是一个大于常数小于$lambda $的线性多项式的函数,则称该算法为亚指数时间算法。

    介于多项式时间算法和指数时间算法之间的是亚指数时间算法,本文所涉及到的近似最大公因子问题和错误学习问题,目前还不存在相应的亚指数时间算法用于求解上述两类问题。

    可忽略函数

    可忽略函数是一个极小量,在计算复杂度理论和全同态加密的安全性定义中应用广泛。

     

    作者: Pam

    出处: https://www.cnblogs.com/pam-sh/>

    关于作者:网安在读

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(mir_soh@163.com)咨询.

  • 相关阅读:
    nested exception is java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}
    Thrift Expected protocol id ffffff82 but got 0
    idea
    Activity工作流入门之HelloWorld
    Thrift 入门之helloWorld
    Thrift入门之mac下的安装流程
    netty的解码器与粘包和拆包
    java反射(一)
    使用Spring报错:No default constructor found;
    jpa关联映射(一)
  • 原文地址:https://www.cnblogs.com/pam-sh/p/15243145.html
Copyright © 2011-2022 走看看