У меня есть класс насоснайти ближайший вариант
public class Pump
{
public string Name { get; set; }
public int PSI_min { get; set; }
public int PSI_max { get; set; }
public int Horsepower_min { get; set; }
public Bitmap Graph { get; set; }
public int RPM { get; set; }
public Pump (string name, int psi_min, int psi_max, int horsepower_min)
{
Name = name;
PSI_min = psi_min;
PSI_max = psi_max;
Horsepower_min = horsepower_min;
}
}
и у меня есть функция, чтобы найти насос, который приспосабливает на основе пользовательского ввода (PSI, HP и RPM)
public void Calculate()
{
for (int i=0; i<9; i++)
{
Pump pump = pumps[i];
if (pump.PSI_min <= givenPSI && pump.PSI_max >= givenPSI && pump.Horsepower_min <= givenHorsepower && pump.RPM == givenRPM)
{
pumpsThatFit.Add(pump);
}
}
сейчас , Я пытаюсь найти способ для программы получить самый доступный насос, если нет насосов, которые точно соответствуют (PSI слишком высокий HP слишком низкий и т. Д.). Но я не могу придумать, как это сделать. Есть идеи?
Вы определяете подходящий способ взвесить важность, отличающуюся от желаемых значений, и найти ту, которая имеет самую низкую взвешенную разницу. –
У вас есть спецификация для определения «ближайшего» насоса. Затем используется математика/статистика. Ближе всего это то, как вы его определяете и совершенно произвольно. – ryanyuyu
Более конкретно - определить взвешенный «балл», основанный на важности каждого поля, и вычислить «оценку» для каждого насоса. –