【发布时间】:2016-07-16 00:43:06
【问题描述】:
我有一个具有以下属性的正(随机)整数列表:
元素数量:78495
元素最大值:999982
转换为字符串时的列表长度:517115(字符串看起来像“6,79384,238956,...”)
磁盘上文本文件中列表的大小:520 kb
我正在尝试将此列表用作在线判断问题的预计算列表,因为实际生成此列表需要很长时间。但是,如果我直接粘贴到源代码中,则太大而无法接受,其上限为 50 kb。
我研究了 zlib 作为一种压缩字符串的方法,但它似乎只是将大小减半。
有没有办法真正缩小它,以便我可以解压缩它/在源代码中使用它?
【问题讨论】:
-
你说这些是随机整数。为什么需要这些特定的随机整数,为什么要花这么长时间重新运行 RNG?
-
@user2357112 出于本次讨论的目的,随机 - 进入实际的数学问题是不可能的。
-
我认为顺序很重要?如果不是,那么值之间的平均差异只有 13,因此您可以尝试对它们进行排序并压缩增量。
-
是的,顺序很重要(具体来说,它是一个最小 k 值的列表,其中 10^k = 1 mod p for primes p > 5)。列表的第 i 个位置对应于第 (i+3) 个素数
-
您的程序是否需要完整列表,或者它可以在输入的数字流上运行?换句话说,你能不能设置两个线程:1)一个产生最小-k值的线程;并且,2)在生成这些值时消耗/使用这些值的线程?
标签: python list memory compression