缩放算法

import random


#一维示例
test_arry = [11,12,13,15,18,20,29,35,40,55,68,70,92,105,107,109]

#最后一个数如果不是109,而是200,如何等比例、等长度的将这个列表进行放大的操作
#先计算缩放比例

rate = 200/test_arry[-1]
result = [int(i*rate) for i in test_arry]
print(result)
#[20, 22, 23, 27, 33, 36, 53, 64, 73, 100, 124, 128, 168, 192, 196, 200]






#二维数组
test_arry = [
    [1,20],
    [3,20],
    [3,20],
    [45,20],
    [332,18]
]
#最后一个数组不是[332,18],而是[200,32],如何等比例等长度的进行放大操作

rate_x = 200/test_arry[-1][0]
rate_y = 200/test_arry[-1][1]

result = [[int(i[0]*rate_x),int(i[1]*rate_y)] for i in test_arry]
print(result)
#[[0, 222], [1, 222], [1, 222], [27, 222], [200, 200]]


#为列表中的第一个元素做一个偏移
result = [[int(i[0]*rate_x+random.uniform(-0.5,0.5)),int(i[1]*rate_y)] for i in test_arry]
print(result)
#[[0, 222], [1, 222], [1, 222], [27, 222], [199, 200]]





#二维列表中的三个元素
test_arry = [
    [1,20,2433344],
    [3,20,3432432],
    [3,20,3432432],
    [45,20,432432],
    [332,18,3432432]
]

#同理可得
#Z轴一般没有波动

 

上一篇:leecode第五百六十题(和为K的子数组)


下一篇:(真本)迈阿密大学文凭-|UM一样