Algorithm 通过只知道开始和结束的集合估计当前进度

Algorithm 通过只知道开始和结束的集合估计当前进度,algorithm,hadoop,mapreduce,statistics,probability,Algorithm,Hadoop,Mapreduce,Statistics,Probability,您如何在只知道第一个和最后一个项目而不知道项目数的情况下估计迭代集合的进度 AAAAAAA .... .... ....? .... .... ZZZZZZZZZZZZ 第一项和最后一项保证是整个集合的字典最小值和最大值。可以假设项目值的分布接近均匀。您接收项目的顺序未知,可能无法预测,也可能是有序的。项目保证是唯一的 只要估计值随着时间的推移逐渐接近99.999%,就可以波动 这让我想起了,除了(据我所知)并没有一种方法可以按字典顺序减去或得到项目之间的距离。例如,我想把收到的最大项目与最后

您如何在只知道第一个和最后一个项目而不知道项目数的情况下估计迭代集合的进度

AAAAAAA
....
....
....?
....
....
ZZZZZZZZZZZZ
第一项和最后一项保证是整个集合的字典最小值和最大值。可以假设项目值的分布接近均匀。您接收项目的顺序未知,可能无法预测,也可能是有序的。项目保证是唯一的

只要估计值随着时间的推移逐渐接近99.999%,就可以波动

这让我想起了,除了(据我所知)并没有一种方法可以按字典顺序减去或得到项目之间的距离。例如,我想把收到的最大项目与最后一个项目进行比较,但我不知道如何获得任意项目之间的“距离”


上下文:我让mapreduce作业中的映射程序使用这些键,并且在无法报告进度百分比的情况下,tasktracker假设任务被卡住,并开始在相同数据上生成推测性冗余映射。

通过排列秩帮助您找到距离:

您要做的是计算每个字符串的秩并减去距离。

您可以将字符串“S1S2…Sn”视为等于S1/N+S2/N^2+…+的数字Sn/N^N,其中N是字母表的大小。换句话说,字符串的字符是该数字的N元表示形式的逗号后的数字


然后,您可以使用这些数字之间的差值作为字符串之间的距离,因为它相对于字典顺序是单调的。

这是否适用于长度可能不同的字符串?虽然作为一种启发,我可能会使用前n个字符来简化问题。难道词典排序不适用于将字符串与其自身的排列进行比较吗?不同字符串的秩不一定按字典顺序增加。例如,“cba”的排名是6,而“def”的排名是1。也许我误解了您的要求,但如果已知分布,并且顺序完全不可预测,则问题似乎无法解决。来自同一分布的独立样本数量无法为您提供有关其总数的任何新信息。如果样本是唯一的(因此不是独立的),但它们可能的顺序是均匀分布的,那么情况也是如此。我认为,如果没有至少一些关于项目顺序的信息,就无法估计进度。