始终认为秋叶拓哉书上那段代码,没有起到离散化的作用啊?预计是我智障吧。
。
。肯定是。
compress 后的 X。Y 坐标绘制的 field 和原来的地图一样啊。
究竟为森么呢?究竟为森么呢?
import pprintdef compress( li1, li2, size, nums ): vec = [] vec1 = [] for i in xrange( nums ): for d in xrange( -1, 2 ): temp1, temp2 = li1[i] + d, li2[i] + d if 1 <= temp1 <= size: vec.append( temp1 ) if 1 <= temp2 <= size: vec.append( temp2 ) vec.sort() for v in vec: if len( vec1 ) == 0: vec1.append( v ) else: if vec1[-1] != v: vec1.append( v ) li1[:] = map( lambda x: vec1.index( x ), li1 ) li2[:] = map( lambda x: vec1.index( x ), li2 ) return len( vec1 )X1 = [1, 1, 4, 9, 10]X2 = [6, 10, 4, 9, 10]Y1 = [4, 8, 1, 1, 6]Y2 = [4, 8, 10, 5, 10]W = H = 10N = 5field = [ [ 0 for w in xrange( W ) ] for h in xrange( H ) ]compress( X1, X2, W, N )compress( Y1, Y2, H, N )pprint.pprint( zip( zip( X1, Y1 ), zip( X2, Y2 ) ) )for i in xrange( N ): for y in xrange( Y1[i], Y2[i] + 1 ): for x in xrange( X1[i], X2[i] + 1 ): field[y][x] = 1for i in xrange( W ): for j in xrange( H ): print field[i][j], print