【发布时间】:2012-09-21 06:35:16
【问题描述】:
受 Nick Johnson 的博客 Damn Cool Algorithms: Fountain Codes 的启发,我决定尝试实施 Luby Transform (LT) code。我只是推到GitHub;它是用 Python 3 编写的。
我使用一个仅包含“hello”的非常短的文件来开发它,并在一个随机生成的 1MB 文件上进行了测试。该软件似乎对文件进行了有效的编码和解码,只有原始文件的长度、块大小和编码器和解码器之间共享的液滴。
问题是,我应该如何证明这确实是 LT 代码的忠实实现?如何证明解码算法是有效的?
我的意图是 Python 的计数引用系统会删除使用过的液滴。 我如何检查这确实发生了?
也欢迎对代码本身提供任何反馈,尽管它可能更适合作为评论(而不是答案)或 GitHub 上的问题。
【问题讨论】:
-
虽然this question 不是您的专属,但它可能会有所帮助。
-
关于引用计数我认为你根本做不到。首先,python 语言可能经过了很好的测试,所以应该不会有太多的内存泄漏。其次,它高度依赖于版本(X.Y 中发现的内存泄漏,将在下一个版本中修复)。通常,您只需将语言视为“完美”即可。除了已知的错误,我会说。顺便说一句,即使试图用汇编语言证明某些东西也行不通,因为硬件可能有错误,所以这是一个你无法完全消除的限制。
-
@Bakuriu 感谢您的回答。我并不是要证明没有内存泄漏,而是在我认为应该删除的时候删除对象。
-
能否请您指导我到一个用 C 实现 LT 代码的地方?我在互联网上找不到来源