穷举24位*800*600的图片,总共有多少张?

2012-02-04 21:40:04 +08:00
 chaojie
另外按你的算法,给定一个数字n,能否生成第n张图片。给定一张图片,能否算出其处在第几张?
8116 次点击
所在节点    问与答
56 条回复
reus
2012-02-05 00:51:25 +08:00
@gfreezy 是的,所以有2 ^ (24 * 800 * 600)种可能。这段内存可以看作是一个图片,也可以看作是一个整数。图片或者整数,只是人类赋予这些0101的意义,对计算机来说却没有区别
chaojie
2012-02-05 01:13:03 +08:00
@reus 汗,没看到,原来压缩早就被否认了。。。无知了
reus
2012-02-05 01:13:20 +08:00
@gfreezy 是的,所以有2 ^ (24 * 800 * 600)种可能。这段内存可以看作是一个图片,也可以看作是一个整数。图片或者整数,只是人类赋予这些0101的意义,对计算机来说却没有区别
dreamersdw
2012-02-05 01:18:02 +08:00
1. 所有可能的图片一共有 (2^24)^(800*600) = 3.549 x 10^3467865 张
2. 可以。比如想生成第 13 张图片,可以把 13 用二进制表示成 1101,然后再将数字逆序排得到1011,最后补全 479996 个 0,就得到了那张图片的二进制表示。
3. 可以。将图片二进制数据逆序排列,可视其为一个巨大的二进制数,也就图片所在的位置。

但考虑到宇宙中可观测的原子数量只有 10^80 个,我们永远不可能枚举出所有的图片。想用序号代替原始图片,以取代目前的压缩算法也是不现实的。虽然第 0 张图片只需要占用 1 个比特,但最后一张图片,却要占用 2^(800*600) 个比特。再说,既然我们都能从序号推断出图片内容了,序号中包含的信息一点也不会比图片本身的信息少。

3.549 x 10^3467865 张图片一定会包含很多信息吧。不,只包含了很少的信息。因为只需要写一个非常短的程序就可以生成所有的它们。信息是可以帮助消除不确定性的东西。可把所有生成的图片都放在你面前也不能帮助你消除多少不确定性。
chaojie
2012-02-05 01:28:21 +08:00
@reus 原来在#8就已经完全解决这个问题,只是说的太简单,我一下没看懂。如果16进制,也就是说从全0,到全F,000000.....000000 到 FFFFFF......FFFFFF,每6位作为一个像素颜色,共有800*600个像素,所有这些数字就代表所有的可能性。虽然不能用来压缩,但应该还是很有意义的

我这样理解对吧?大学只学经济数学的悲惨路过
013231
2012-02-05 01:29:59 +08:00
其实吧, 想要用序号表示任意信息, 计算pi(圆周率)就可以了. pi中包含了任意有限长的数字序列.
http://www.matrix67.com/blog/archives/397
chaojie
2012-02-05 01:30:13 +08:00
@dreamersdw 刚明白过来发出去就又看到了你的详细解释
vmebeh
2012-02-05 01:42:01 +08:00
@dreamersdw 序号只是一维, 图片至少是个单色的二维.
reus
2012-02-05 02:03:10 +08:00
@chaojie 嗯,就是说图片和对应的数字,在计算机中的表示是一模一样的(也可以不同,像dreamersdw的算法就是不同的),所以“转换”这个操作,电脑是不需要工作的,转换的只是你解释这一坨0101的方式,也就是你赋予它的意义,也就是,你说它是数字它就是数字,说它是图片就是图片,甚至说它是程序,是视频,是音频都可以
所以其实我是觉得这个没啥意义的(……)
dreamersdw
2012-02-05 02:06:16 +08:00
修正前面一个错误,按序号排列的话,最后一张图片的序号本身占用的空间是 24*800*600 比特。
X_Del
2012-02-05 07:27:16 +08:00
问题在于:将世界上所有照片压缩成这个大小,等超过这个数时,一定有人抄袭了……
ro00
2012-02-05 10:50:50 +08:00
这样的话你相当与拥有了在这个数据大小范围内的一切数据,不止是图片,可能是文本,程序,声音....
当然这个里面很多情况下是没有什么意义的
mjar
2012-02-05 11:57:03 +08:00
!!看了两遍,明白了是个很帅的想法。
Platinum
2012-02-05 13:41:45 +08:00
不用算也知道这个数奇大,大到大部分人无法理解的程度

如果大家都能理解这个数,那这个话题基本不会有什么讨论

其实第 n 张图片,这序号 n 就是图片的完整信息,只不过是把这个数看成一个 800x600图片 binary 还是 unsigned integer 序号的问题
tiantian20007
2012-02-07 07:46:37 +08:00
@caomu 果然处处是同类。大爱《诗云》,那简直是浪漫到极致的科幻。同样的结局:要实现一个程序,能把其中绝大多数无意义的画过滤掉,选出所谓的名作,比把所有的图片穷举出来还难得多。
diamondtin
2012-02-08 16:46:42 +08:00
我觉得这个问题和『无限猴子定理』(http://zh.wikipedia.org/wiki/%E7%84%A1%E9%99%90%E7%8C%B4%E5%AD%90%E5%AE%9A%E7%90%86) 很相似,那个定理讨论的是概率,无穷小概率时间还是有“可能”发生。
虽然24位800x600的图片看似不大,不过这个数实际是天文数字,实际上不可能。

但是关于索引这些图片倒是比想象中靠谱一些。因为24位800x600图片对应的全部可能正好可以映射到它对应的二进制序列上面应该是1406KB,由于这个空间是密集的,所以这1406KB就可以作为这张图片的唯一编号。那么给定一个照片的二进制表示那么这张照片的编号也就知道了。

不知道我这洋相是否对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/26600

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX