Поэтому у меня есть список списковнайти [Макс, мин] значение в списке списков питона
alist = [[distance1,delta-angle1,object1],[distance2,delta-angle2,object2], [distance3,delta-angle3,object3],...]
Я хочу, чтобы максимизировать для «расстояния» и свести к минимуму для «дельта-угол», которые являются первые два элемента из каждого list
в alist
и верните этот конкретный список.
предостережение: distance
будет поплавком и delta-angle
будет в градусах (-180: 180)
Цель состоит в том, чтобы выбрать самую длинную дистанцию с «straightest» углом, но не только самым длинным или " прямолинейный "(иначе известный как минимизирующее изменение угла)
EDIT: Я не могу загрузить изображение, так что вот ссылка.
http://imgur.com/a/b6KWM#YqGxdlu
Я хотел бы избежать «идти туда, где я был», как и в этом особом случае. Как показано на втором изображении
ИЗОБРАЖЕНИЯ 2
Третье изображение является идеальным - и так как я до сих пор не придумал лучшего способа заявить следующим образом: свести к минимуму изменение угла от текущего подшипника (который дельта-угол, что хранится в alist
уже) и максимизировать distance
или длину доступных сегментов линии (обозначаемый здесь концами на границе в следующей картине)
IMAGE 3 http://imgur.com/a/b6KWM#YqGxdlu
Ваше определение «самое длинное расстояние с прямым углом» довольно неопределенно - можете ли вы определить функцию полезности? если у вас есть пара элементов, как вы можете решить, какой из них лучше? –
Вы не можете получить ответ, пока не получите конкретную формулу для выбора того, какой из них лучше. После этого вы можете просто отсортировать его, указав ключ. (подробнее читайте: http://wiki.python.org/moin/HowTo/Sorting/) – placeybordeaux
Кроме того, почему вы предполагаете, что вам нужно «положить [угол] по шкале от [0 ... 360]» до минимизировать его? Вы действительно хотите, чтобы 89 ° считалось более минимальным, чем -45 °? Если нет, оставьте его как [-180, 180] и просто скройте 'abs (angle)' вместо 'angle'. – abarnert