gpt4 book ai didi

objective-c - 根据 C/Objective-C 中的 Z 分数找到非常精确的百分位数?

转载 作者:行者123 更新时间:2023-11-30 20:28:04 25 4
gpt4 key购买 nike

我正在创建一个程序,需要查找数千个单独的百分位数,其中大多数都小于 0.00005。目前,为此我使用

0.5 * erfc(-zScore * M_SQRT1_2)

但是,这似乎略有舍入(在我的程序的其余部分中,我使用 double 和长 double ,所以必须是这样)。我相信这一点,因为最后,当我将所有百分位数相加时,我得到 1.835468。这告诉我它正在四舍五入,因为它应该加起来为 1,或者至少是一个非常接近 1 的数字。此外,当我记录每个单独的百分位数时,我会得到几个百分位数的相同数字(假设为 0.000036),并且然后它下降到 0.000035。每次它都应该下降,因为每个数字都比上一个数字更远离平均值。

我需要一种方法来根据 Z 分数找到非常精确的百分位数,但这并没有给我提供这种方法,因为它舍入得太早,位于小数点后第六位。

最佳答案

当你看到它从 0.000036 跳到 0.000035 时,这是因为你需要使用 NSLog(@"Value is: %0.36f", yourPercentile);。您应该发现它实际上并不是四舍五入到 6 位数字,但这只是它的记录方式。

现在,您的错误来自于您使用的是 double ,它不能很好地存储精确值。首先,您需要知道您需要多少精度,然后使用可以处理该精度级别的类型。

假设您决定需要 12 位精度。

long long 是一个很好使用的单位,因为它可以存储 19 位数字。当您计算原始值时,您需要将原始值乘以 100,000,000,000 并将它们存储为 long long。然后使用大值进行所需的数学计算。最终,当您得到结果时,只需除以相同的值(如果您想将其视为整数,则可以减去 2 位数字)即可得到百分比。

关于objective-c - 根据 C/Objective-C 中的 Z 分数找到非常精确的百分位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14296466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com