我在找出解决此问题的最佳方法时遇到了一些问题。我想显示 0-100 的百分比。我的输入 (X( 是以米为单位的距离。X 越接近 0,我希望百分比接近 100。
我的问题是这个人必须能够知道他们是否接近 0。无论范围有多远。因此,如果他们在 10000 米之外并到达 9900 米,我需要增加百分比。但如果它们在 50 米外并到达 45 米,则相同。
现在我正在做
100 - ((playerDistance / max) * 100)
其中最大值是某人可以达到的米的最大值。 对于我的情况来说,大约是 300,000。如果他们走得很远,这就可以了。但是一旦它们进入几千米以内,它就会失去所有精度,因为它将在很长一段时间内达到 99%。
您可以对参数 0 应用值为 1 (100%( 的任何函数并平滑减小。
一对示例(Python 语法(
100.0 * math.exp( - dist / 1000.0)
100.0 * math.pow(1 + dist, -0.3)
请注意,您无法提供涵盖所有所需范围的整数百分比值,因此您必须在点后显示至少三个十进制数字(如 54.321(。
Aslo 指出,指数方法为相等的distance1/distance2
比率提供相等的百分比增量