小编use*_*470的帖子

为什么ZIP在System.Random生成的序列上如此高效 - Kolmogorov的复杂性在哪里?

我正在生成随机数序列.序列仅包括0和1.我将每个序列放在一个单独的文本文件中,然后我尝试归档文件(格式为.zip).我正在使用System.Random生成每个序列的元素.初看起来,序列似乎确实是随机的.

奇怪的是,无论生成的.txt文件的大小是多少,压缩的.zip文件的大小总是等于.txt文件大小的相同比例~17%.

但从理论上讲,对于一个非常随机的序列,压缩的.zip文件的大小应该与.txt文件的大小基本相同 - 也就是说,应该几乎没有压缩.否则,序列至少是部分可预测的(在这种"翻转硬币"式实验中这是不可能的).

所以这意味着我的"归档器"知道如何识别序列是由System.Random中实现的特定伪随机生成器生成的.

这里我有两个问题:

  1. 如何生成归档器无法压缩的伪随机序列?也许有一些已知的技巧?

  2. 为什么17%的比率如此稳定并且不依赖于序列的长度(即,.txt文件的大小).

谢谢你的帮助!

compression random complexity-theory zip

3
推荐指数
1
解决办法
114
查看次数

LINQ是否允许简化这种结构?

我有一份清单List<string> MyValues = new List<string>{};.在我的程序中,我需要硬编码以下内容:

MyValues.Add(MyFunc(1)); MyValues.Add(MyFunc(2)); ... MyValues.Add(MyFunc(20));
Run Code Online (Sandbox Code Playgroud)

当然,我可以在for循环中完成它.但我想应该有一个LINQ结构允许用一个简单的结构填充一个列表代替这个循环.

任何人都可以建议这样的LINQ结构填满我的名单吗?

非常感谢!

.net c# linq

3
推荐指数
1
解决办法
99
查看次数

标签 统计

.net ×1

c# ×1

complexity-theory ×1

compression ×1

linq ×1

random ×1

zip ×1