雨韵 发表于 2020-8-22 13:12
我下载了Pi的小数点后十亿位作为字典,尝试进行编程
谢谢,本人不才,惭愧
有一点我没有完全理解,你的意思是在Pi中找到上述“14159265358979”这个字符串,然后返回这个字符串的第一个数字和最后一个数字、字符串长度和开始位置是吗?
雨韵 发表于 2020-8-22 14:42
有一点我没有完全理解,你的意思是在Pi中找到上述“14159265358979”这个字符串,然后返回这个字符串的第一 ...
对,然后组合起来,用“,”隔开,第一个数和最后一个数记录下来是当保险(不记录也可以)
这个问题让我想起压缩炸弹

洛初墨 发表于 2020-8-22 14:44
这个问题让我想起压缩炸弹
想多了,我好像有,但我不给你
.............我能说没听懂吗
雨韵 发表于 2020-8-22 14:42
有一点我没有完全理解,你的意思是在Pi中找到上述“14159265358979”这个字符串,然后返回这个字符串的第一 ...
切分数据再合并是指在π中找不到原数据时将原数据切分成几个小份,再在π中查找,分别记录下数据(字符串的第一个数字和最后一个数字1,字符串长度1,开始位置1)(字符串的第一个数字和最后一个数字2,字符串长度2,开始位置2)……(字符串的第一个数字和最后一个数字n,字符串长度n,开始位置n)……
最后合并起来如:a1,b1,c1,a2,b2,c2,……an,bn,cn的形式




请不要在我的帖子下灌水
JJ怪大战 发表于 2020-8-22 14:52
切分数据再合并是指在π中找不到原数据时将原数据切分成几个小份,再在π中查找,分别记录下数据(字符串 ...
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数据。以这种形式来看,这个算法可能并不优秀。
数据报表:
共计算:140608个数据
无法获取:74495个数据
计算时间: 1584.6016519069672 s
无法获取数据预览(取前三百个)由于使用多线程计算,所以数据比较乱
雨韵 发表于 2020-8-22 17:06
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数 ...
那么,如果把十进制换成二进制,是不是能增大检测概率呢?
审核打架就打架独家星劫
萌新表示一点也看不懂
雨韵 发表于 2020-8-22 17:06
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数 ...
https://www.mcbbs.net/thread-1107906-1-1.html
对于压缩方式,我总共发了三个帖子讨论,
后面的数据找不到的问题我尝试用二进制的方法解决
JJ怪大战 发表于 2020-8-22 17:08
那么,如果把十进制换成二进制,是不是能增大检测概率呢?
并不会,因为Pi是十进制的,改成二进制只会降低概率
本帖最后由 JJ怪大战 于 2020-8-22 17:17 编辑
这种算法感觉极其耗用内存和cpu,但不知道是否有这样一个无理数使数据均能方便查找
这又要牵扯到最短的排序问题了
雨韵 发表于 2020-8-22 17:06
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数 ...
这种算法感觉极其耗用内存和cpu,但不知道是否有这样一个无理数使数据均能方便查找
这又要牵扯到最短的排序问题了
雨韵 发表于 2020-8-22 17:15
并不会,因为Pi是十进制的,改成二进制只会降低概率
所以硬盘越大,压缩率越小了
JJ怪大战 发表于 2020-8-22 17:16
这种算法感觉极其耗用内存和cpu,但不知道是否有这样一个无理数使数据均能查找
这又要牵扯到最短的排序问 ...
任何一个无理数都可以,只不过是多少位的问题。甚至有人猜想,在Pi的某一段信息,是可以被翻译成有意义的信息的。
雨韵 发表于 2020-8-22 17:19
任何一个无理数都可以,只不过是多少位的问题。甚至有人猜想,在Pi的某一段信息,是可以被翻译成有意义的 ...
我去看看有没有十亿位内包含大量不重复信息的无理数
JJ怪大战 发表于 2020-8-22 17:18
所以硬盘越大,压缩率越小了
十进制100:100
二进制100:1100100
十进制95184726:95184726
二进制95184726:101101011000110011101010110
差了很多位,占用空间倍增
雨韵 发表于 2020-8-22 17:20
十进制100:100
二进制100:1100100
π的二进制包含了任意一个有限长的二进制串,所有n位长的二进制串都以相等的概率出现在pi的二进制中
世界基础 数学。
雨韵 发表于 2020-8-22 17:20
十进制100:100
二进制100:1100100
https://github.com/philipl/pifs
竟然已经有人早就提出了此想法
我还是落后了啊
但是那个软件是极其耗用磁盘空间的,被人戏称为运气压缩
可是我想到了数据所处序号过大的问题
表示一脸懵 0.0
JJ怪大战 发表于 2020-8-22 17:22
π的二进制包含了任意一个有限长的二进制串,所有n位长的二进制串都以相等的概率出现在pi的二进制中 ...
实际上你指的这个相等概率出现,其实就是十进制下的相等出现概率与补码概率之和
雨韵 发表于 2020-8-22 17:31
实际上你指的这个相等概率出现,其实就是十进制下的相等出现概率与补码概率之和 ...
在π二进制中,任何数据的中间的0或1都可能是另一个有序数据的开头或结尾,只要有足够大的存储媒介,就可以直接用π储存任何有限长度的数据
JJ怪大战 发表于 2020-8-22 17:33
在π二进制中,任何数据的中间的0或1都可能是另一个有序数据的开头或结尾,只要有足够大的存储媒介,就可 ...
显然,我电脑的内存有限。。
雨韵 发表于 2020-8-22 17:35
显然,我电脑的内存有限。。
但是我想,如果在π中找不到的数据进一步分割查找呢
点进来 让后看不
JJ怪大战 发表于 2020-8-22 17:38
显然那些开发者想到了存储这点,他们用云服务器
云存储的是硬盘空间,而非内存,,除非他们不读入文件,或者逐行读入,,
JJ怪大战 发表于 2020-8-22 17:41
但是我想,如果在π中找不到的数据进一步分割查找呢
你在Pi中甚至能找到e的小数部分
雨韵 发表于 2020-8-22 17:44
云存储的是硬盘空间,而非内存,,除非他们不读入文件,或者逐行读入,, ...
看来这是个效率极低耗费极大的算法
雨韵 发表于 2020-8-22 17:44
你在Pi中甚至能找到e的小数部分
在e中能找到π的小数部分,听起来很荒谬但是事实
接下来我会通过逆算法,将一段文字运算成二进制,然后通过数据运算逼近Pi的前几百或几千位中的某一段。这应该才算是压缩存储。。只不过专门配套的压缩和解压缩软件要比被压缩的内容大上几千几万倍。。。
JJ怪大战 发表于 2020-8-22 17:45
看来这是个效率极低耗费极大的算法
编程语言是可以直接编辑文档而无需读入。比如通过指针,在每万位的地方插入\n,进而通过逐行读取逐行处理,随时释放内存的方式,实现大文档的读入。
雨韵 发表于 2020-8-22 17:48
接下来我会通过逆算法,将一段文字运算成二进制,然后通过数据运算逼近Pi的前几百或几千位中的某一段。这应 ...
光是字典都是十亿位的pi都是GB以上存储,所以用服务器来存储也不是不行
完全听不懂 进来也还是个垃圾
一脸懵逼1!!
JJ怪大战 发表于 2020-8-22 17:50
光是字典都是十亿位的pi都是GB以上存储,所以用服务器来存储也不是不行
没必要,电脑64G内存,1T固态硬盘,足够了
目测对算力要求极高

看完了所有的回复
感觉就是这种方式适合用来简单加密而非用来压缩,比如说某**云盘防止屏蔽之类的
(说起来我的反屏蔽手段还是极其原始的多重压缩改后缀名,把rar/zip压缩包改成jar的mod文件放进文件夹再次压缩改为avi/ini/dll等后缀名后再次压缩=-=)
感觉就是这种方式适合用来简单加密而非用来压缩,比如说某**云盘防止屏蔽之类的
(说起来我的反屏蔽手段还是极其原始的多重压缩改后缀名,把rar/zip压缩包改成jar的mod文件放进文件夹再次压缩改为avi/ini/dll等后缀名后再次压缩=-=)
这样做不会导致二义性吗
rua猫.jpg

雨韵 发表于 2020-8-22 17:50
编程语言是可以直接编辑文档而无需读入。比如通过指针,在每万位的地方插入\n,进而通过逐行读取逐行处理 ...
我试了一下如果是二进制,逐位读取得到的信息量比十进制大得多
还是用sha256吧
很有趣的想法
