我目前有一个整数列表,我想将其转换为概率分布。我的目标是将较低的整数值分配给较高的概率值。到目前为止,我想出的是(在 Python 代码中):
>>> original_list = list(range(0, 20))
[0, 1, 2, 3, 4, 5, ..., 19, 20]
>>> preliminary_results = [1 / (x + 0.00001) for x in original_list]
[99999.99, 0.99, 0.49, 0.33, 0.24, 0.19, ..., 0.05]
>>> final_results = [x / sum(preliminary_results) for x in preliminary_results]
[0.99, 9.99e-08, 4.99-08, 5.2629e-07]
修改了实际输出以增强可读性,但我认为该消息已传达。
如您所见,该策略按我想要的方式工作,但我想知道是否有更好的方法来做到这一点而不必经过两个步骤,因为这在数学上表达也有点不直观。谢谢。
