百科问答小站 logo
百科问答小站 font logo



能否使用3的指数来减小二进制文件存储的体积? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

话说,虽然题主的表达方式确实是错的,在嘲笑题主的同时,但难道各位不知道3进制确实比2进制更节省存储空间吗?更接近e的进制是更节省空间的,显然3比2更接近e,所以三进制节约空间是有道理的,只不过题主他看错了方向。

1到100000这个范围的正整数里,2进制更省空间的有8488个,3进制更省空间的有76226个,其余15286个是占空间相等的情况。

当然了,三进制补码很难看,估计会被人骂死。换了我,我也不喜欢用三进制,太反人类了。

-----------------------------------------

看来很多人还是没明白,我再补充一些:

本来想自己算,但发现有人已经给算过了(zz from newsmth e进制是信息表示的最优解):

假定总共有n位,每位m个状态,m*n=v
在v一定时,使得m^n最大
也就是k(n)=(v/n)^n最大
考虑一般情况下
ln(k(n))=(ln(v)-ln(n))*n=ln(v)*n - ln(n)*n
对n求导 ln(v) - (n*1/n + ln(n)) = ln(v) - 1 - ln(n)
解得ln(n)=ln(v)-1是k(n)唯一的极值点
易知是k(n)最大值点
所以n=v/e m=e时,k(n)最大

所以数学上就可以证明三进制比二进制更省空间。

有人说二进制存储器更便宜,那是因为现代计算机已经选择了二进制,所以硬件制造商自然会寻找更廉价的二进制存储设备,这是一个互相影响的过程。


user avatar    网友的相关建议: 
      

是时候设计无穷大进制了
这样就可以把任意信息压缩到一个符号

香农,给,吃苹果



Update 1: 题目现在这个表述的话

那其实是压缩编码...

压缩的代价是解码表会变大...

和那个 进制最优不是一回事...


Update 2: 说个题外话...

Code Golf...现在不堪入目

就是被这种破压缩法搞的...

J语言,Befunge语言还算好的...

Jelly(Python),MATL(Matlab),Japt(JavaScript)这种什么玩意儿...

一个巨大的编码表,用UTF字符代替函数...

为了短而短,恶心死了...




  

相关话题

  C++ 实现接口与实现分离后,文件变得更多了,到底有什么好处? 
  埃式筛为什么只要筛到根号n就好了? 
  求解决这道题目? 
  Golang 为什么要发布一个新的字体? 
  如何判断级数lnn/n^2(从1到无穷)收敛或发散? 
  c语言中,关于switch循环的这个疑问怎么解? 
  有哪些经典的无解问题? 
  编程时怎么把函数当做变量使用? 
  程序员到底有多累、多辛苦? 
  为什么 C++ 的开源库看起来那么头大? 

前一个讨论
中国开发一个主流的手机系统到底能有多难?
下一个讨论
为什么从合肥到济南的高铁经常晚点?





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利