Найти максимально возможное значение x и y баллов - PullRequest
0 голосов
/ 24 сентября 2018

Я измерил точки для примерочных линий.Количество точек, которые я измерил в направлении x, является первым значением точки (например, X1), а вторым значением этой точки являются измеренные точки в направлении y.

X1(2,9)
X2(9,3)
X3(5,4)
X4(6,4)

Это означает, что, например, в X3 я измерил 5 точек в направлении x и в направлении y, я измерил 4 точки.С точками в x-направлении я подгоню линию в x-направлении, а с точками в y-направлении я подгоню линию в y-направлении.Чтобы получить лучшие результаты, больше точек в направлении х и у лучше, чем меньше.Например, лучше выбрать X4, а не X1, потому что в X1 у меня есть в 9-точках в направлении у, а в направлении х только 2 точки, что даст мне плохой результат в направлении х.В X4 у меня есть и то и другое: большое количество точек в x и в y-направлении.Так что я могу быть уверен, что линии будут достаточно хорошими.Поэтому я хочу найти этот X #, где у меня есть (the) высокое (est) количество точек в x и в направлении y

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вам необходимо написать функцию, которая оценивает «пригодность» точки.

def fitness(point):
    '''
    ranks a point by the total number of points, 
    minus the difference between the number of x and y points.
    uses total number of points as a secondary rank
    '''
    num_points = sum(point)
    xydiff = max(point) - min(point)
    return num_points - xydiff, num_points

Вышеуказанная функция должна быть скорректирована в зависимости от того, как вы хотите взвесить точки.

>>> points = [(2,9), (9,3), (5,4), (6,4)]
>>> sorted(points, key=fitness, reverse=True)
[(6, 4), (5, 4), (9, 3), (2, 9)]
>>> max(points, key=fitness) # the most fit point
(6, 4)
0 голосов
/ 24 сентября 2018

Вы пробовали проверить свой код?Кажется, что ваш X находится в порядке возрастания, а ваш Y использует противоположный порядок.Может быть, как вставить значения x и y в переменную, а затем отсортировать их в том порядке, в котором вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...