51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4197|回复: 5
打印 上一主题 下一主题

[求助] 刚接触python的新手请问一个循环不变量证明循环正确的问题

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:06
  • 签到天数: 530 天

    连续签到: 2 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2019-2-18 09:24:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1测试积点

    下边是mergesort代码:
    01 def head(Q):
    02 return Q[0]

    03 def tail(Q):
    04 return Q[1:]

    05 def mergesort(U):
    06 if U == [] or tail(U) == []:
    07 return U
    08 else:
    09 L = []
    10 R = []
    11 while U != [] and tail(U) != []:
    12 L = L + [head(U)]
    13 U = tail(U)
    14 R = R + [head(U)]
    15 U = tail(U)
    16 L = L + U
    17 L = mergesort(L)
    18 R = mergesort(R)
    19 S = []
    20 while L != [] and R != []:
    21 if head(L) <= head(R):
    22 S = S + [head(L)]
    23 L = tail(L)
    24 else:
    25 S = S + [head(R)]
    26 R = tail(R)
    27 S = S + L + R
    28 return S
    要找到一个循环不变量证明循环(line9-16)是正确的,这个循环不变量应该是U,循环开始之前U保持原始状态不变;每次循环迭代后U失去前两个元素分别给L和R,在下次循环开始之前U保持剩余元素不改变;循环结束的条件是U为空或只有一个元素,此时U保持判定false之前的状态依旧不变,若是剩余一个元素,语句L=L+U将其加入到L中,满足将元素依次加到L和R中的功能。
    不知道我这样理解对不对,求大佬解答


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 1521 天

    连续签到: 5 天

    [LV.Master]测试大本营

    2#
    发表于 2019-2-19 10:37:00 | 只看该作者
    差不多的
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-8 10:04
  • 签到天数: 473 天

    连续签到: 2 天

    [LV.9]测试副司令

    3#
    发表于 2019-2-19 11:29:48 | 只看该作者
    没什么问题,可以先赋值给别的元素
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 2817 天

    连续签到: 5 天

    [LV.Master]测试大本营

    4#
    发表于 2019-2-19 13:05:40 | 只看该作者
    应该没啥问题
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 1806 天

    连续签到: 5 天

    [LV.Master]测试大本营

    5#
    发表于 2019-2-19 14:53:44 | 只看该作者
    没问题
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 21:51 , Processed in 0.065771 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表