java - 显示一个值与另一个值的距离的算法
问题描述
免责声明:这是一个关于数学和算法的非常非常困难的问题(在我看来)——所以请尊重任何提出这个问题的人。我很佩服你。
我想评估我的员工的表现。我想通过测量以下参数作为他们工作时间的百分比来做到这一点:
1. % of Time spent working
2. % of Time spent in meetings
3. % of Time spent travelling
我对其中的每一个都有一组“首选”百分比。这代表了我希望我的员工度过他们的时间的理想时间。
% Time spent in Meetings -> 30%
% Time spent Travelling -> 10%
% Time Spent Working -> 60%
total time spent on activities: 100%
因此,换句话说,我希望我的员工将 30% 的时间花在会议上,10% 的时间花在旅行上,60% 的时间花在办公桌上工作。
我还想为这些不同的百分比添加权重。重量将代表我对每个百分比与我想要的不同的“宽容”程度。换句话说,我发现每个变量最接近所需百分比(30、10、60)的重要性。我想在 1 到 10 的范围内应用权重,10 是最重要的,1 是最不重要的。
Meetings -> 3
Travelling -> 9
Working -> 5
因此,考虑到员工花费的时间百分比,以及花费时间的重要性接近于期望花费的时间,我想生成一个介于 0 和 100 之间的索引,其中 100 是完美的时间百分比,0 是最差的。因此,100 分将给出“首选”百分比:
% Time spent in Meetings -> 30%
% Time spent Travelling -> 10%
% Time Spent Working -> 60%
我将如何尝试解决这个问题:
- 找出最小和最大比率是多少
- 使用最小和最大比率计算一个值,以说明每个值与所需值的距离。确保此值在比率 0-1 中(对应于 0-100)
- 计算加权平均值。
解决方案
我认为你正在尝试一些有点像 H 分数的东西。H 分数是我们在数字病理学中用于衡量制造商肿瘤阳性率的分数,它旨在通过强度来衡量阳性细胞的数量。它的:
1* (% of positive cells with score 1) + 2*(% of positive cells with score 2) + 3*(% of positive cells with score 3)
您可以计算如下:
3*(1-% of difference between actual worked hourse and planned ones)
9*(1-% of difference between actual worked hourse and planned ones)
5*(1-% of difference between actual worked hourse and planned ones)
计算差异时不要忘记使用绝对值。我使用了 1-%,因此 0.8 的差异(按计划 0.ì 和工作 0.9)将导致得分为 0.2。这也适用于相反的情况(计划 0.9 和工作 0.1)。这样,完美匹配计划时间的人将获得1700%的分数。然后只是:
Score/Total weights = score between 0-100%.
推荐阅读
- javascript - 如何仅将元素的样式传递给另一个元素?
- while-loop - Jenkinsfile sh 模块逐行读取文件
- java - 无法在 CentOS 7 上安装 JHipster
- cassandra - 从 Cassandra 集群导出所有数据的最佳方式是什么?
- r - 将函数应用于 csv 文件列表
- python - 将包含元组列表的字典导出到 CSV 文件
- javascript - ::before元素的jQuery/JS随机背景图片解决方案
- django - 如何修复“文件不是 zip 文件”
- python - 在类中初始化记录器以在重试装饰器中使用
- php - Laravel - 我如何查询月份和年度日期?