我正在尝试编写一种算法,以在系统中X个规则之间分配100个权重点,其中规则具有Y个不同的权重之一。例如:
如果系统中有9条规则,其中3条规则设置为高优先级,2条规则设置为中优先级,4条规则设置为低优先级,则点的分布将如下所示:
High (3x) - 20 per rule (60 points)
Med (2x) - 10 per rule (20 points)
Low (4x) - 5 per rule (20 points)
共计100分
所有权重可能并不总是存在。例如,可能有1个高位规则和1个低位规则,1个中位规则(将获得全部100分),等等。
我无法找到一种方法来完成这项工作,部分原因是我不知道这种操作叫什么。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以汇总规则权重(@Table(name = "X")
@Entity
public class Extended extends Extracted{
//all relational fields from OldMain, no data fields
}
)并将其与100进行比较。您应该为每个规则分配S = sum(rule_num[i] * rule_weight[i])
点,而不是给规则分配1点。
100/S
如果积分不是整数,这取决于您。