【发布时间】:2011-01-30 19:17:33
【问题描述】:
我有这段文字:
2,3,5,1,13,7,17,11,89,1,233,29,61,47,1597,19,37,41,421,199,28657,23,3001,521,53,281,514229,31,557 ,2207,19801,3571,141961,107,73,9349,135721,2161,2789,211,433494437,43,109441,139,2971215073,1103,97,101,6376021,907661,953,0579, ,59,353,2521,4513,3010349,35239681,1087,14736206161,9901,269,67,137,71,6673,103681,9375829,54018521,230686501,29134601,988681,79,157,1601,2269,370248451,99194853094755497,83,9521 ,6709,173,263,1069,181,741469,4969,4531100550901,6643838879,761,769,193,599786069,197,401,743519377,919,519121,103,8288823481,119218851371,1247833,11128427,827728777,331,1459000305513721,10745088481,677,229,1381 ,347,29717,709,159512939815855788121,
这是从我的生成器程序生成的数字,现在问题有源代码限制,所以我不能在我的解决方案中使用上述文本所以我想压缩它并将其放入python中的数据结构,以便我可以通过以下索引来打印它们:
F = [`compressed data`]
而F[0] 会给出2 F[5] 会给出7 像这样...请给我推荐一种合适的压缩技术。
PS:我是python的新手,所以请解释一下你的方法。
【问题讨论】:
-
我在这里看不到任何压缩。你确定这就是你的意思吗?
-
压缩?这并不意味着你认为它意味着什么。
-
您的号码列表的大小是多少?您需要多快获取索引编号?这个数字列表是否有任何关于数字序列的边界、属性、特征或任何其他信息?你说你有源代码限制。它是什么?你有内存限制吗?有多种压缩算法,正确的选择取决于您的限制和可用信息。
-
给定一个值 N 我已经输出了 F[N] 的值,现在 F[] 的初始化应该是 F = [ 2,3,5,1,13,7,17, 11,89,1,233,...] 但我使用压缩值而不是数字,这样整个源代码限制就足够了。
-
@Tretwick Marian:您能否详细说明
the problem has a source code limit和can't use the above texts in my solution的含义。您是否参加某种编码比赛?顺便说一句,您是否考虑过将“文本”保存到文件中,稍后在需要时将其读取到列表中?