我如何根据可用资金和一套物品的数量来计算加权值?

我正在努力工作,我觉得应该是相当简单的东西,但我正在陷入一个坚实的墙壁。 我正在制定一些基本的预算function。 对于我的“愿望清单”,我希望根据以下标准为项目分配一个美元金额:

  • 集合中的项目数量
  • 可用的金额
  • 该项目的优先级

为了取得成功,应该满足以下条件:

  • 分配的美元值应根据组中项目的数量自动更新。
  • 所分配的美元值应根据可用资金自动更新。
  • “预算金额”栏(如下)应始终等于可用资金。

这是一个示例数据集:

可用资金:$ 500

|-----------------------------------------| | PRIORITY | ITEM NAME | Budgeted Amount | |-----------------------------------------| | 1 | Thing 1 | 92.86 | |-----------------------------------------| | 2 | Thing 2 | 85.71 | |-----------------------------------------| | 3 | Thing 3 | 78.57 | |-----------------------------------------| | 4 | Thing 4 | 71.43 | |-----------------------------------------| | 5 | Thing 5 | 64.29 | |-----------------------------------------| | 6 | Thing 6 | 57.14 | |-----------------------------------------| | 7 | Thing 7 | 50 | |-----------------------------------------| 

所以基本上,如果“事物”的数量发生变化,“预算金额”应该更新,以正确地加在“可用余额”上。 同样,如果“可用资金”值发生变化,则“可用余额”列应该适当更新。

理想情况下,这应该根据“排名”加权。 否则,我只是全面地使用计算出的平均值,并将事情列为“更重要”。

我已经尝试了一些相当复杂(坦率地说)可笑的计算。 我也尝试了71.43 * 1.3这样简单的事情。 只要列表中有七个项目,所有这一切都可以正常工作。

免责声明

  • 上面的十进制值是四舍五入的,所以它们可能完全不加上“可用资金”。
  • 我实际上在PHP中实现这一点,但我在Excel中原型。 PHP解决scheme也可以。

任何援助或指针在正确的方向将不胜感激。 我甚至不知道如何标题这个问题。

这一切都是关于倒序排名与总排名总和之比。 这个值将给出排名项目的预算系数。

 <?php $available_budget = 500; echo "<h1>Total Budget = $available_budget</h1>"; $items = array( 0 => "thing 1", 1 => "thing 2", 2 => "thing 3", 3 => "thing 4", 4 => "thing 5", 5 => "thing 6", 6 => "thing 7" ); $count = count($items); // first pass calculate total running sum $total_running_sum = 0; for ($i=1; $i<=$count; $i++){ $total_running_sum += $i; } // table header echo "<table border=1><thead><tr><th>Item</th><th>budget</th></tr></thead><tbody>"; // start with the last item (lowest rank) $items = array_reverse($items); for ($i=0; $i<$count; $i++){ echo "<tr><td>$items[$i]</td>". // divide the reverse rank by total running sum and multiply by available budget "<td>". (($i+1)/$total_running_sum)*$available_budget ."</td></tr>"; } echo "</tbody></table>"; ?> 

这将产生如下表格:

 Total Budget = 500 Item budget thing 7 17.857142857143 thing 6 35.714285714286 thing 5 53.571428571429 thing 4 71.428571428571 thing 3 89.285714285714 thing 2 107.14285714286 thing 1 125 

预算列总是总计完全预算。