Q:

How to convert an array of numbers into probability values?

I would like some help with respect to certain numerical computation. I have certain arrays which look like:
Array 1:
[0.81893085, 0.54768653, 0.14973508]
Array 2:
[0.48078357, 0.92219683, 1.02359911]
Each of the three numbers in the array represents distance of a data point from the cluster centroid in k-means algorithm. I want to convert these numbers into probabilities. The element which has a high distance should be converted into a low probability. For example, [0.81893085, 0.54768653, 0.14973508] can be converted into a probability vector like [0.13, 0.22, 0.65]. As it can be seen, the elements which have a high value in the original array have low value in the probability array (and of course the values in the probability array sum to 1).
Is there any mathematical technique that will achieve this result?
What I have tried till now is, I took the inverse of each of the values in the original array:
1/[0.81893085, 0.54768653, 0.14973508] = [1.22110431, 1.82586195, 6.67846172]
And then I input the resulting array to softmax function (softmax function converts an array of numbers to probabilities) - https://en.wikipedia.org/wiki/Softmax_function
This gives a probability vector of [0.00421394, 0.00771491, 0.98807115].
Is this a good approach? Is there any other approach?

A:

Any Survival Function (1 minus the CDF) will have the desired property. Exponential is a potentially good candidate here, as it sometimes can be used to describe distances, but it's hard to say without more information.
$$S(x) = \exp(-ax)$$
The parameter $a$ can be tuned or possibly estimated from the data. 
For reference, if $a = 1$ then you get,
$$ [0.44, 0.58, 0.86]$$
$$[0.62, 0.4, 0.36]$$
for the first and second arrays respectively.

