zoukankan      html  css  js  c++  java
  • 超简单的四则运算效能分析

    超简单的四则运算效能分析

    psp表格

    解题思路及设计过程

    题目要求:随机自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
    解题思路:这次作业重点在效能分析,故只考虑最简单的情况,将题目分为几个函数来实现:
    (1)随机生成表达式函数(getEquation):利用python自带的random库的random.randint随机生成09的整数作为表达式数字、随机生成14的整数代表运算符。
    (2)匹配运算符函数(choose):随机生成1~4的整数分别代表:+ 、- 、* 、/ 四个运算符,利用匹配函数得到运算符。
    (3)测试函数(test):取不同数量的样例,利用python的time库对运行时间进行分析

    代码说明

    import random
    import time
    def getEquation(): # 生成表达式
    equation = ""
    opration = ""
    number = 0
    number = random.randint(1,9)
    equation += str(number) # 将数字放进式子里
    opration = choose(random.randint(1,4)) # 随机生成符号+ - * ÷
    equation += opration # 将符号放进式子里
    answer = number
    if opration"÷": # 分母不为0
    number = random.randint(1,9)
    answer /= number
    elif opration
    "+":
    answer += number
    number = random.randint(0,9) # 随机生成0~9
    elif opration"-":
    answer -= number
    number = random.randint(0,9) # 随机生成0~9
    elif opration
    "*":
    answer = number
    number = random.randint(0,9) # 随机生成0~9
    equation += str(number) # 将数字放进式子里
    equation += '=' # 将=放进式子里
    print(equation)
    return answer
    def choose(n): # 匹配符号
    if n1:
    return "+"
    elif n
    2:
    return "-"
    elif n==3:
    return "
    "
    elif n==4:
    return "÷"
    def test():# 测试函数
    for i in range(10000):
    answer = getEquation()
    start_time = time.time()
    test() # 待测试的函数
    end_time = time.time()
    print ('time cost:' ,str(end_time - start_time))

    测试运行

    测试10万个例子,用时:1.98s

    下图是用pycharm的profile做的单元测试,由于代码比较简单,只有一个主要函数,所以结果为:getEquation函数占用绝大部分耗时(98.2%)choose函数占用0.9%的耗时。

  • 相关阅读:
    给Linux添加google搜索命令
    安卓设置脚本开机自启动
    重读The C programming Lanuage 笔记四:c预处理
    重读The C programming Lanuage 笔记三:简单计算器程序
    重读The C programming Lanuage 笔记二:运算符优先级
    重读The C programming Lanuage 笔记一:类型转换
    【 转】 C/C++结构体和联合体的区别
    python 柯里化 和装饰器
    qq bug 一个
    网站收集
  • 原文地址:https://www.cnblogs.com/Rainy-He/p/8882229.html
Copyright © 2011-2022 走看看