我编写了c++代码来计算一亿个双精度数字的119个分位数(从10^-7到1-10^-7)。我当前的实现方式是将数字存储在向量中,然后对向量进行排序。有没有不存储数字就能计算分位数的方法?
谢谢
补充说明(抱歉我的英语): 这是我正在做的事情: 1)在[0, 1)中生成20个均匀分布的随机数 2)将这些数字输入算法,输出具有未知均值和未知方差的随机数 3)在第2步中存储数字 重复1、2和3共1亿次(现在我收集了具有未知均值和未知方差的1亿个随机数)。 现在我对这些数字进行排序,使用“R-2,SAS-5”公式计算从10^-7到1-10^-7的119个分位数:https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample 由于程序是多线程的,内存分配太大,我只能使用5个线程而不是8个。
谢谢
补充说明(抱歉我的英语): 这是我正在做的事情: 1)在[0, 1)中生成20个均匀分布的随机数 2)将这些数字输入算法,输出具有未知均值和未知方差的随机数 3)在第2步中存储数字 重复1、2和3共1亿次(现在我收集了具有未知均值和未知方差的1亿个随机数)。 现在我对这些数字进行排序,使用“R-2,SAS-5”公式计算从10^-7到1-10^-7的119个分位数:https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample 由于程序是多线程的,内存分配太大,我只能使用5个线程而不是8个。