JJ怪大战
雨韵 发表于 2020-8-22 13:12
我下载了Pi的小数点后十亿位作为字典,尝试进行编程

谢谢,本人不才,惭愧

雨韵
有一点我没有完全理解,你的意思是在Pi中找到上述“14159265358979”这个字符串,然后返回这个字符串的第一个数字和最后一个数字、字符串长度和开始位置是吗?

JJ怪大战
雨韵 发表于 2020-8-22 14:42
有一点我没有完全理解,你的意思是在Pi中找到上述“14159265358979”这个字符串,然后返回这个字符串的第一 ...

对,然后组合起来,用“,”隔开,第一个数和最后一个数记录下来是当保险(不记录也可以)

洛初墨
这个问题让我想起压缩炸弹

JJ怪大战
洛初墨 发表于 2020-8-22 14:44
这个问题让我想起压缩炸弹

想多了,我好像有,但我不给你

不忘吃心
.............我能说没听懂吗

JJ怪大战
雨韵 发表于 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的形式

c1027012741

JJ怪大战

请不要在我的帖子下灌水

雨韵
JJ怪大战 发表于 2020-8-22 14:52
切分数据再合并是指在π中找不到原数据时将原数据切分成几个小份,再在π中查找,分别记录下数据(字符串 ...

我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数据。以这种形式来看,这个算法可能并不优秀。

数据报表:
共计算:140608个数据
无法获取:74495个数据
计算时间: 1584.6016519069672 s

无法获取数据预览(取前三百个)由于使用多线程计算,所以数据比较乱





JJ怪大战
雨韵 发表于 2020-8-22 17:06
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数 ...

那么,如果把十进制换成二进制,是不是能增大检测概率呢?

但是如此
审核打架就打架独家星劫

星璃吖~
萌新表示一点也看不懂

JJ怪大战
雨韵 发表于 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怪大战
本帖最后由 JJ怪大战 于 2020-8-22 17:17 编辑
雨韵 发表于 2020-8-22 17:06
我测试了aaa到ZZZ的数据情况,测试后约为0.5298062699135184,也就是说有一半可能在Pi中查找不到对应的数 ...

这种算法感觉极其耗用内存和cpu,但不知道是否有这样一个无理数使数据均能方便查找
这又要牵扯到最短的排序问题了

JJ怪大战
雨韵 发表于 2020-8-22 17:15
并不会,因为Pi是十进制的,改成二进制只会降低概率

所以硬盘越大,压缩率越小了

雨韵
JJ怪大战 发表于 2020-8-22 17:16
这种算法感觉极其耗用内存和cpu,但不知道是否有这样一个无理数使数据均能查找
这又要牵扯到最短的排序问 ...

任何一个无理数都可以,只不过是多少位的问题。甚至有人猜想,在Pi的某一段信息,是可以被翻译成有意义的信息的。

JJ怪大战
雨韵 发表于 2020-8-22 17:19
任何一个无理数都可以,只不过是多少位的问题。甚至有人猜想,在Pi的某一段信息,是可以被翻译成有意义的 ...

我去看看有没有十亿位内包含大量不重复信息的无理数

雨韵
JJ怪大战 发表于 2020-8-22 17:18
所以硬盘越大,压缩率越小了

十进制100:100
二进制100:1100100

十进制95184726:95184726
二进制95184726:101101011000110011101010110
差了很多位,占用空间倍增

JJ怪大战
雨韵 发表于 2020-8-22 17:20
十进制100:100
二进制100:1100100

π的二进制包含了任意一个有限长的二进制串,所有n位长的二进制串都以相等的概率出现在pi的二进制中

qq494087622
世界基础  数学。

JJ怪大战
雨韵 发表于 2020-8-22 17:20
十进制100:100
二进制100:1100100

https://github.com/philipl/pifs

竟然已经有人早就提出了此想法
我还是落后了啊
但是那个软件是极其耗用磁盘空间的,被人戏称为运气压缩
可是我想到了数据所处序号过大的问题

Sweeture
表示一脸懵 0.0

JJ怪大战

请不要在我的这个帖子下灌水

雨韵
JJ怪大战 发表于 2020-8-22 17:22
π的二进制包含了任意一个有限长的二进制串,所有n位长的二进制串都以相等的概率出现在pi的二进制中 ...

实际上你指的这个相等概率出现,其实就是十进制下的相等出现概率与补码概率之和

JJ怪大战
雨韵 发表于 2020-8-22 17:31
实际上你指的这个相等概率出现,其实就是十进制下的相等出现概率与补码概率之和 ...

在π二进制中,任何数据的中间的0或1都可能是另一个有序数据的开头或结尾,只要有足够大的存储媒介,就可以直接用π储存任何有限长度的数据

雨韵
JJ怪大战 发表于 2020-8-22 17:33
在π二进制中,任何数据的中间的0或1都可能是另一个有序数据的开头或结尾,只要有足够大的存储媒介,就可 ...

显然,我电脑的内存有限。。

JJ怪大战
雨韵 发表于 2020-8-22 17:20
十进制100:100
二进制100:1100100

任何的有限长数据在π中都可以用序列号+长度来表示
不知我的说法是否有谬误,望指出

JJ怪大战
雨韵 发表于 2020-8-22 17:35
显然,我电脑的内存有限。。

显然那些开发者想到了存储这点,他们用云服务器

JJ怪大战
雨韵 发表于 2020-8-22 17:35
显然,我电脑的内存有限。。

但是我想,如果在π中找不到的数据进一步分割查找呢

1317343436
点进来 让后看不

雨韵
JJ怪大战 发表于 2020-8-22 17:38
显然那些开发者想到了存储这点,他们用云服务器

云存储的是硬盘空间,而非内存,,除非他们不读入文件,或者逐行读入,,

雨韵
JJ怪大战 发表于 2020-8-22 17:41
但是我想,如果在π中找不到的数据进一步分割查找呢

你在Pi中甚至能找到e的小数部分

JJ怪大战
雨韵 发表于 2020-8-22 17:44
云存储的是硬盘空间,而非内存,,除非他们不读入文件,或者逐行读入,, ...

看来这是个效率极低耗费极大的算法

JJ怪大战
雨韵 发表于 2020-8-22 17:44
你在Pi中甚至能找到e的小数部分

在e中能找到π的小数部分,听起来很荒谬但是事实

雨韵
接下来我会通过逆算法,将一段文字运算成二进制,然后通过数据运算逼近Pi的前几百或几千位中的某一段。这应该才算是压缩存储。。只不过专门配套的压缩和解压缩软件要比被压缩的内容大上几千几万倍。。。

雨韵
JJ怪大战 发表于 2020-8-22 17:45
看来这是个效率极低耗费极大的算法

编程语言是可以直接编辑文档而无需读入。比如通过指针,在每万位的地方插入\n,进而通过逐行读取逐行处理,随时释放内存的方式,实现大文档的读入。

JJ怪大战
雨韵 发表于 2020-8-22 17:48
接下来我会通过逆算法,将一段文字运算成二进制,然后通过数据运算逼近Pi的前几百或几千位中的某一段。这应 ...

光是字典都是十亿位的pi都是GB以上存储,所以用服务器来存储也不是不行

BigKillBla
完全听不懂 进来也还是个垃圾

起名为么难
一脸懵逼1!!

雨韵
JJ怪大战 发表于 2020-8-22 17:50
光是字典都是十亿位的pi都是GB以上存储,所以用服务器来存储也不是不行

没必要,电脑64G内存,1T固态硬盘,足够了

翊.
JJ怪大战 发表于 2020-8-21 11:23
可以不停压缩直到压缩率最大

那你压缩他不占内存吗?

Hi_old
目测对算力要求极高

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

Voluctus
这样做不会导致二义性吗

Fichit
rua猫.jpg

JJ怪大战
雨韵 发表于 2020-8-22 17:50
编程语言是可以直接编辑文档而无需读入。比如通过指针,在每万位的地方插入\n,进而通过逐行读取逐行处理 ...

我试了一下如果是二进制,逐位读取得到的信息量比十进制大得多

安道尔月色如华h
还是用sha256吧

KVIWNNVQSBGD
很有趣的想法

第一页 上一页 下一页 最后一页