找回密码
 立即注册
搜索
总共850条微博

动态微博

查看: 2272|回复: 1
打印 上一主题 下一主题
收起左侧

答案:一道有意思的题

[复制链接]

1177

主题

2775

帖子

6万

积分

跳转到指定楼层
楼主
发表于 2005-11-11 06:26:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

原题:
 www.ddhw.com
常去wxc论坛的人都知道,有许多论坛,当你翻到其最后一页时,发现没有信息,其实,不仅仅是最后一页,而是最后的好几页都是这种情况。也就是说,一个论坛,声称有比如说2345页,但是其实可能只有2312页,再往后面都是空白。不信你去试试看。我一直在想这个问题,同时也注意到顶顶没有这种情况发生。
 
为什么会出现这种错误?
 
解答:
 
不知道这里的朋友有没有认真地对待此题,有没有去wxc看看验证?很久前我就注意到这个问题,但是从没有认真地想过,后来当我认真地考虑这个问题的时候,觉得挺有意思。
 
这个问题的本质就是:如何根据网友发帖的数量(包括楼主贴与跟贴)来确定一共需要多少页。显然wxc程序员算错了(我估计他们应该也注意到这个问题,但是也许暂时没有办法解决)
 www.ddhw.com
在wxc,每一页至少有50行贴(包括跟贴),有时可能会多些。因为如果第49行是一个楼主的贴,而这个楼主的贴可能有10个跟贴,显然,这10个跟贴必须在这一页上,而不可能在下一页,所以就有可能每一页多于50行的情况。
 
这样,就产生了一个问题:你如何计算在中间的某一页的第一个贴是哪一个?在数据库里,所有的贴都在一起,即使是按照次序调出来,要计算在某个特定的页面上的第一个贴可能会有一定的难度(除了顶顶以外,我还没有见到过第二家能够正确计算页数的论坛,下面我有介绍)。我认为,wxc程序员在这里偷懒了,他们用了一个简单的办法:在估算页数时,只是简单的用“页数 = 总贴数/50”。而在实际的现实中,每一页可能会显示多于50贴,这样下来,就很有可能(几乎一定发生)实际的页数要少些。
 
那么其他网站是怎么解决这个问题的?
 
首先说顶顶,我具体不是很清楚是怎么解决的,但是我想绝对不会用最笨的方法,每次都扫描所有的贴,因为这样太慢,太蠢,消耗资源,也许这里有人能给出一个算法。
 www.ddhw.com
万维,留园等网站等做法比较聪明,他们巧妙的绕过了这个问题,不告诉你一共有多少页,他们只是给出前10页的连接,再往下就是“下一页”地链接,所以,你就无法知道他们的论坛有多少页。
 
像倍可亲等网站,还有许多国内网站,他们的排列方式不同(在这里就是 更换显示方式 ),在论坛里,他们只显示楼主的贴而没有跟贴(只有当你打开楼主贴的时候,会同时显示跟贴内容),所以这种情况下计算相当简单,也不会出错。
 
不知道我上面有没有说清楚,欢迎各位提问
www.ddhw.com

 
回复

使用道具 举报

213

主题

1162

帖子

1万

积分

沙发
发表于 2005-11-11 08:14:06 | 只看该作者

回复:答案:一道有意思的题


新新说的很清楚,我能听懂.WXC那边我也看到了这个问题,但从没像你这样深想过 . 顶顶这边是怎么计算的,我也不知道.
 
www.ddhw.com

 
回复 支持 反对

使用道具 举报

24小时热帖
    一周热门
      原创摄影
        美食美文
          您需要登录后才可以回帖 登录 | 立即注册

          本版积分规则

          Archiver|手机版|珍珠湾ART

          Powered by Discuz! X3 © 2001-2013 All Rights Reserved