符号

notations的Python项目详细描述


符号

通过查看给定python函数中的循环嵌套级别,静态估计该函数的asymptotic notation

这是一个早期的原型

示例

fromnotationsimportnotationdefmy_example_function(arg1,arg2):f=0forainarg1:foriina:f+=1forbinarg2:forjinb:f+=1print(notation(my_example_function))

将打印Θ(n^2)

有关更多示例,请参见test_notations.py

待办事项

这是现阶段一个概念的草图。

  • while运算符
  • 看看函数中输入参数之间的关系,仅仅因为循环是嵌套的,并不意味着O(n_n)是正确的
  • 循环中的分支
  • 测试理解

常见问题解答

  • 为什么不使用ast?AST不能在运行时(容易地)从代码对象生成,此库用于计算编译函数的执行顺序。
  • 如果不运行代码,您怎么可能计算顺序?此函数通过查看函数中循环嵌套的级别、理解的使用以及参数之间的关系来确定顺序。动态运行时基准测试易受环境条件(噪音邻居)的影响,而且已经有很多工具可以做到这一点

研究笔记

更改

0.2.0

  • 更改为repr的θ值

0.1.0

  • 支持基本for循环的初始原型

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库