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


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

    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%的耗时。

  • 相关阅读:
    【BZOJ4864】[BeiJing 2017 Wc]神秘物质 Splay
    【BZOJ3438】小M的作物 最小割
    【BZOJ3436】小K的农场 差分约束
    【BZOJ2879】[Noi2012]美食节 动态加边网络流
    【BZOJ1070】[SCOI2007]修车 费用流
    【BZOJ1486】[HNOI2009]最小圈 分数规划
    搜索ABAP程序代码中的字符串
    自定义表的维护
    用户名转换成中文名
    日期计算
  • 原文地址:https://www.cnblogs.com/Rainy-He/p/8882229.html
Copyright © 2020-2023  润新知