Опора А. Я написал почтовый сервер, который дает мне 32 000 почтовых индексов США.У каждого почтового индекса есть связанный lat-long.Имея 2 почтовых индекса, я могу найти расстояние между ними по их широте.
Опора B. Я также написал метеорологический сервер, на котором можно ввести не более 200 почтовых индексов, и он выплевывает температуру в каждом из этих почтовых индексов..
Человек говорит, что его почтовый индекс - Z, температура - T. Он спрашивает меня, какое самое близкое место от Z, где его температура как минимум на 10 градусов ниже?
Итак, я получаю список из 200 почтовых индексов.от Z, отсортированный по расстоянию (используя опору A).Я кормлю это B и получаю 200 температур.Если ни один из них не на 10 градусов круче, я получаю следующие 200 почтовых индексов и повторяю их до тех пор, пока это не будет сделано.
Проблема: это выглядит довольно неэффективно и грубо.Я чувствую, что мне не хватает некоторого понимания физики.Не всегда верно, что если вы идете на север, температура понижается и на юг нагревается.Так что направление не помогает.Высота, вероятно, есть (горы круче, чем долины), но данные почтовых индексов, привязанные к высоте, найти сложно.
Можете ли вы, ребята, придумать какой-нибудь более разумный способ сделать это?Любые предложения приветствуются.Примечание: данные о погоде дорогие.Вы можете подключиться к серверу погоды только несколько раз, и каждый раз вы можете получить только 200 температур.(otoh, расстояния между любыми двумя почтовыми индексами являются предварительно вычисленными константами, и получить это бесплатно).