流中的字符

时间:2011-05-29 08:26:51

标签: file stream

这个问题在接受采访时被问到了。

假设您的计算机从流中逐个读取字符(在结束之前您不知道流的长度)。请注意,您只有一个存储空间字符(因此您无法将已读取的字符保存为强大的字符)。当你读完之后,你应该以相同的概率从流中返回一个字符。

如何解决这个问题?任何想法?

任何解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:5)

这是你知道或不知道的技巧之一:

取第一个角色,概率1/2取下一个角色,否则保留第一个角色,概率1/3取下一个,否则保持等等。

它的工作原理是因为每次你选择 1 概率 1 / n ,或保留前一个(概率 1 /( n-1)在那里,概率(1-n)/ n 1-n 取消。