Алгоритм группировки по температурному диапазону [пересмотренный]C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Алгоритм группировки по температурному диапазону [пересмотренный]

Сообщение Гость »


Обратите внимание, что это более подробная версия предыдущего закрытого вопроса.
У меня есть сценарий, в котором я items ( is a large number), and each item has a minimum allowable temperature (

Код: Выделить всё

min_temp
) and a maximum allowable temperature (

Код: Выделить всё

max_temp
).
I need to find a setpoint temperature that maximizes the number of items where that setpoint is between their

Код: Выделить всё

min_temp
and

Код: Выделить всё

max_temp
values. Ideally, it finds the value that also gives the greatest buffer between the setpoint and the closest min/max value of the compatible items (i.e. the safest setpoint in case of fluctuations).
A brute-force approach would be to loop through possible temperatures at a certain step size, such as:

Код: Выделить всё

float best_temp;
size_t best_num_items = 0;
for(float t = -60; t < 100; t += 0.1) {
size_t num_items = 0;
for(auto item: items) {
if(t >= item.min_temp && t  best_num_items) {
best_num_items = num_items;
best_temp      = t;
}
}
This would give me the best setpoint, but (a) it's obviously wildly inefficient, (b) it doesn't account for finding the value with the greatest buffer as detailed above, and (c) it negates all possible values that may be between step sizes.
Is there a non-brute-force approach that I should consider for this?


Источник: https://stackoverflow.com/questions/781 ... ge-revised
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»