Как выровнять два разных набора данных для лучшего выравнивания данных? - PullRequest
0 голосов
/ 28 февраля 2020

Предположим, у вас есть два массива со значениями от 0 до 256 (размер 10 в выборке, но в действительности может достигать размера 1000)

array1: [1, 20, 50, 17, 250 , 117, 211, 6, 37, 88]

массив 2: [18, 250, 128, 200, 10, 40, 78, 0, 23, 58]

выше смещенных массивов будет быть таким:

массив1: [1, 20, 50, 17, 250, 117, 211, 6, 37, 88]

массив2: [0, 23, 58, 18, 250, 128, 200, 10, 40, 78]

Если вы нарисуете значения на графике X / Y, вы увидите две одинаковые кривые, сдвинутые в X. (значения круглые, поэтому «11-й» значение становится первым значением.)

Программно, каков будет самый быстрый способ выровнять эти значения, чтобы стоимость стала как можно меньше? Я мог бы go пройти все 10 смен одну за другой и посмотреть, какой получится с наименьшей стоимостью, но это будет медленно для массива из 1000 элементов.

Примечание: каждый элемент в массиве может иметь ЛЮБОЕ значение от 0 до 255, и эти два массива могут быть совершенно разными. Мне просто нужно получить смену, обеспечивающую минимально возможную стоимость.

...