美文网首页
2018-06-11

2018-06-11

作者: 我才不会相信你 | 来源:发表于2018-06-11 15:43 被阅读0次

动态规划法解剪绳子问题

1.问题:

2.分析:定义函数f(n)为长度为n的绳子剪成若干段后的最大长度乘积

若从上而下使用递归会产生大量重复问题,不如自下而上用循环依次计算f(2),f(3)等

3.代码:


def maxlength(n):

    if n==1:

        print('长度太短')

        return

    if n==2:

        print(1)

        return

    if n==3:

        print(2)

        return

    else:

        maxlist=[2,3]

        for j in range(4,n+1):

            v=int(0.5*j+1)

            maxlength=0

            for i in range(2,v):

                result=maxlist[i-2]*maxlist[j-i-2]

                if result>maxlength:

                    maxlength=result

            maxlist.append(maxlength)

        print(maxlist[n-2])   

相关文章

网友评论

      本文标题:2018-06-11

      本文链接:https://www.haomeiwen.com/subject/wujheftx.html