码迷,mamicode.com
首页 > 其他好文 > 详细

Dynamic Programming--Picture compress

时间:2016-05-06 20:23:47      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:


p = [0, 10, 12, 15, 255, 1, 2]


def store_bit_number(n):
    k = 1
    n = n//2
    while n != 0:
        k = k+1
        n = n//2
    return k

s = [0, 0, 0, 0, 0, 0, 0, 0, 0]
pos = [0, 0, 0, 0, 0, 0, 0, 0, 0]

# s[i] = min(s[i-k] + max(len(p[i]))*k)+11)


def split(p, n):
    for i in range(1, n+1):
        min_val = s[i-1] + store_bit_number(p[i])
        pos[i] = 1
        print "begin", i, min_val
        for k in range(1, i+1):
            max_bit_number = get_bit_number(p, i-k+1, i)
            cur_val = s[i - k] + max_bit_number*k
            if min_val > cur_val:
                min_val = cur_val
                pos[i] = k
        s[i] = min_val+11
        print "end", i, s[i]


def get_bit_number(p, k, i):
    max_bit_number = 0
    for j in range(k, i+1):
        cur_bit_number = store_bit_number(p[j])
        if cur_bit_number > max_bit_number:
            max_bit_number = cur_bit_number
    return max_bit_number


def get_segments(pos, n, segment):
    if n == 0:
        return
    get_segments(pos, n-pos[n], segment)
    print n, n-pos[n]
    segment.append([n-pos[n], pos[n]])


split(p, 6)
print pos
segment = []
get_segments(pos, 6, segment)
print segment

Dynamic Programming--Picture compress

标签:

原文地址:http://www.cnblogs.com/zhaodonglin/p/5466871.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!