算法的力量(转)

[复制链接]
1849|12
 楼主| focuson 发表于 2015-6-4 16:26 | 显示全部楼层 |阅读模式
算法的力量

李开复

2006年5月

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。

算法与我

当我在1980年转入计算机科学系时,还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说:“知道为什么只有你们系要加一个‘科学’,而没有‘物理科学系’或‘化学科学系’吗?因为人家是真的科学,不需要画蛇添足,而你们自己心虚,生怕不‘科学’,才这样欲盖弥彰。” 其实,这点他们彻底弄错了。真正学懂计算机的人(不只是“编程匠”)都对数学有相当的造诣,既能用科学家的严谨思维来求证,也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。

记得我读博时写的Othello对弈软件获得了世界冠军。当时,得第二名的人认为我是靠侥幸才打赢他,不服气地问我的程序平均每秒能搜索多少步棋,当他发现我的软件在搜索效率上比他快60多倍时,才彻底服输。为什么在同样的机器上,我可以多做60倍的工作呢?这是因为我用了一个最新的算法,能够把一个指数函数转换成四个近似的表,只要用常数时间就可得到近似的答案。在这个例子中,是否用对算法才是能否赢得世界冠军的关键。

还记得1988年贝尔实验室副总裁亲自来访问我的学校,目的就是为了想了解为什么他们的语音识别系统比我开发的慢几十倍,而且,在扩大至大词汇系统后,速度差异更有几百倍之多。他们虽然买了几台超级计算机,勉强让系统跑了起来,但这么贵的计算资源让他们的产品部门很反感,因为“昂贵”的技术是没有应用前景的。在与他们探讨的过程中,我惊讶地发现一个O(n*m)的动态规划(dynamic programming)居然被他们做成了O(n*n*m)。更惊讶的是,他们还为此发表了不少**,甚至为自己的算法起了一个很特别的名字,并将算法提名到一个科学会议里,希望能得到大奖。当时,贝尔实验室的研究员当然绝顶聪明,但他们全都是学数学、物理或电机出身,从未学过计算机科学或算法,才犯了这么基本的错误。我想那些人以后再也不会嘲笑学计算机科学的人了吧!

网络时代的算法

有人也许会说:“今天计算机这么快,算法还重要吗?”其实永远不会有太快的计算机,因为我们总会想出新的应用。虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快增长,价格也在不断下降。可我们不要忘记,需要处理的信息量更是呈指数级的增长。现在每人每天都会创造出大量数据(照片,视频,语音,文本等等)。日益先进的记录和存储手段使我们每个人的信息量都在爆炸式的增长。互联网的信息流量和日志容量也在飞快增长。在科学研究方面,随着研究手段的进步,数据量更是达到了前所未有的程度。无论是三维图形、海量数据处理、机器学习、语音识别,都需要极大的计算量。在网络时代,越来越多的挑战需要靠卓越的算法来解决。

再举另一个网络时代的例子。在互联网和手机搜索上,如果要找附近的咖啡店,那么搜索引擎该怎么处理这个请求呢?

最简单的办法就是把整个城市的咖啡馆都找出来,然后计算出它们的所在位置与你之间的距离,再进行排序,然后返回最近的结果。但该如何计算距离呢?图论里有不少算法可以解决这个问题。

这么做也许是最直观的,但绝对不是最迅速的。如果一个城市只有为数不多的咖啡馆,那这么做应该没什么问题,反正计算量不大。但如果一个城市里有很多咖啡馆,又有很多用户都需要类似的搜索,那么服务器所承受的压力就大多了。在这种情况下,我们该怎样优化算法呢?

首先,我们可以把整个城市的咖啡馆做一次“预处理”。比如,把一个城市分成若干个“格子(grid)”,然后根据用户所在的位置把他放到某一个格子里,只对格子里的咖啡馆进行距离排序。

问题又来了,如果格子大小一样,那么绝大多数结果都可能出现在市中心的一个格子里,而郊区的格子里只有极少的结果。在这种情况下,我们应该把市中心多分出几个格子。更进一步,格子应该是一个“树结构”,最顶层是一个大格——整个城市,然后逐层下降,格子越来越小,这样有利于用户进行精确搜索——如果在最底层的格子里搜索结果不多,用户可以逐级上升,放大搜索范围。

上述算法对咖啡馆的例子很实用,但是它具有通用性吗?答案是否定的。把咖啡馆抽象一下,它是一个“点”,如果要搜索一个“面”该怎么办呢?比如,用户想去一个水库玩,而一个水库有好几个入口,那么哪一个离用户最近呢?这个时候,上述“树结构”就要改成“r-tree”,因为树中间的每一个节点都是一个范围,一个有边界的范围(参考:http://www.cs.umd.edu/~hjs/rtrees/index.html)。

通过这个小例子,我们看到,应用程序的要求千变万化,很多时候需要把一个复杂的问题分解成若干简单的小问题,然后再选用合适的算法和数据结构。

并行算法:Google的核心优势

上面的例子在Google里就要算是小case了!每天Google的网站要处理十亿个以上的搜索,GMail要储存几千万用户的2G邮箱,Google Earth要让数十万用户同时在整个地球上遨游,并将合适的图片经过互联网提交给每个用户。如果没有好的算法,这些应用都无法成为现实。

在这些的应用中,哪怕是最基本的问题都会给传统的计算带来很大的挑战。例如,每天都有十亿以上的用户访问Google的网站,使用Google的服务,也产生很多很多的日志(Log)。因为Log每分每秒都在飞速增加,我们必须有聪明的办法来进行处理。我曾经在面试中问过关于如何对log进行一些分析处理的问题,有很多面试者的回答虽然在逻辑上正确,但在实际应用中是几乎不可行的。按照他们的算法,即便用上几万台机器,我们的处理速度都跟不上数据产生的速度。

那么Google是如何解决这些问题的呢?

首先,在网络时代,就算有最好的算法,也要能在并行计算的环境下执行。在Google的数据中心,我们使用的是超大的并行计算机。但传统的并行算法运行时,效率会在增加机器数量后迅速降低,也就是说,十台机器如果有五倍的效果,增加到一千台时也许就只有几十倍的效果。这种事倍功半的代价是没有哪家公司可以负担得起的。而且,在许多并行算法中,只要一个结点犯错误,所有计算都会前功尽弃。

那么Google是如何开发出既有效率又能容错的并行计算的呢?

Google最资深的计算机科学家Jeff Dean认识到, Google 所需的绝大部分数据处理都可以归结为一个简单的并行算法:Map and Reduce(http://labs.google.com/papers/mapreduce.html)。 这个算法能够在很多种计算中达到相当高的效率,而且是可扩展的(也就是说,一千台机器就算不能达到一千倍的效果,至少也可以达到几百倍的效果)。Map and Reduce的另外一大特色是它可以利用大批廉价的机器组成功能强大的server farm。最后,它的容错性能异常出色,就算一个server farm里面的机器down掉一半,整个farm依然能够运行。正是因为这个天才的认识,才有了Map and Reduce算法。借助该算法,Google几乎能无限地增加计算量,与日新月异的互联网应用一同成长。

算法并不局限于计算机和网络

举一个计算机领域外的例子:在高能物理研究方面,很多实验每秒钟都产生几个TB的数据量。但因为处理能力和存储能力的不足,科学家不得不把绝大部分未经处理的数据丢弃掉。可大家要知道,新元素的信息很有可能就藏在我们来不及处理的数据里面。同样的,在其他任何领域里,算法都可以改变人类的生活。例如人类基因的研究,就可能因为算法而发明新的医疗方式。在国家安全领域,有效的算法可能避免下一个911的发生。在气象方面,算法可以更好地预测未来天灾的发生,以拯救生命。

所以,如果你把计算机的发展放到应用和数据飞速增长的大环境下,你一定会发现,算法的重要性不是在日益减小,而是在日益加强。

给程序员的七个建议

(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及某些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络,离散数学等基础课程学好。大家不妨试试高德纳所著The Art of Computer Programming里的题目,如果你能够解决其中的大部分题目,就说明你在算法方面有一定的功力了。

(2)多实战。通过编程的实战积累经验、巩固知识。很多中国大学毕业生缺乏编程和调试经验;学习C语言,考试过关就算学会了;课题项目中,只要程序能够编译,运行,并且输入输出满足要求就算了事。这些做法是不行的。写程序的时候,大家必须多想想如何把程序写得更加精炼、高效、高质量。建议大家争取在大学四年中积累编写十万行代码的经验。我们必须明白的是:好程序员是写出来的,不是学出来的。

(3)求实干。不要轻视任何实际工作,比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与敬业精神。我发现不少程序员对于知识的掌握很肤浅,不求甚解,没有好奇心,不会刨根问底。比如,学会了C++,是否了解一个对象在编译后,在汇编代码中是如何被初始化的?这个对象的各个成员在内存中是如何存放的?当一个成员函数被调用时,编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到,只有通过踏实的实干才能真正掌握。

(4)重视数学学习。数学是思维的体操,数学无处不在。学计算机至少要学习离散数学、概率论、布尔代数、集合论和数理逻辑。这些知识并不难,但是对你未来的工作帮助会很大。 尤其当你对一些“数学密集型”的领域如视频、图像处理等有兴趣时,这些知识将成为你手中的利器。

(5)培养团队精神,学会与人合作。今天的软件工程早已经不是一个人可以单独操作的,而必须靠团队合作才能成功。不懂得合作的人是不能成大器的。大家要多去寻找可以与人一起做项目的机会。

(6)激励创新意识,培养好奇心,不要死记硬背。没有掌握某种算法技术的根本原理,就不会有应变和创新的能力。想成为一位好程序员(其实从事任何一个行业都是如此),重要的是要养成钻研,好奇,创新,动手,合作的优秀习惯,不满足于填鸭,不满足于考试交差,不满足于表象。这不是学几门课能够一蹴而就的。

(7)有策略地“打工”。在不影响学业的前提下,寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司,在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方,因为向别人学习才是你的目的。找工作也是一样,不要只看待遇和职衔,要挑一个你能够学习的环境,一个愿意培养员工的企业,一个重视你的专业的公司。最后,还要挑一个好老板。

希望大家都能把握机会,养成好的学习习惯,把算法学精学透;希望大家都能有一个美好的未来!

                                             
        

 楼主| focuson 发表于 2015-6-4 16:30 | 显示全部楼层
让科幻成真——李开复卡内基梅隆大学2015年毕业典礼演讲
2015年6月3日 17:50



写在前面的话:1983年,李开复第一次来到卡内基梅隆大学时,看到教授竟然在教机器们说话、聆听、观看甚至走路,这一切犹如科幻。如今时光荏苒,科技带给我们太多的惊喜,而未来十年,物联网、大数据、云、高科技机器...曾经科幻的一切,将如何实现,一切由年轻的你们决定!“送给‘让科幻成真’的你们”!




上图为2015年CMU毕业典礼的五位荣誉博士学位得主合影:著名演员 “Hawkeye" Alan Alda, 艺术家Joyce Kozloff,《时代》100名全球最具影响力人物、创业投资家李开复 ,三次奥斯卡、四次格莱美得主Stephen Schwartz,诺贝尔奖得主Carl Wieman。



以下是2015年5月李开复在卡内基梅隆计算机科学学院毕业典礼上的演讲中英文对照版:

首先向今年的毕业生们表示祝贺!也非常感谢母校邀请我见证并分享你们一生中如此重要的时刻。对于母校在众多比我优秀的校友中,选择授予我荣誉博士,我深表荣幸。

我曾在四年半的时间内获得了我人生的第一个博士学位。而这个即将获得的第二个博士学位我却用了长达27年的时间 。你们的课程一定越来越难了!

我还记得1983年第一次走进卡内基梅隆大学时的情形,当时我正在做一个“艰难的决定”——到底攻读哪所大学? 当时的我就像是首次进入糖果店里的孩子:卡内基梅隆大学的教授当时居然在教机器们说话、聆听、观看和走路(其实是单脚跳)。但是真正让我决定来读卡梅的是这样一台神器:一台可以联接到互联网的可乐机——它居然可以确保源源不断地供给**给我们这些极客们!

当时是1983年,这对于我而言就像是科幻。但如今再回首往事,当初这些技术仅仅还处于初期发展的萌芽阶段。而32年后的今天,当时的想想和科幻正在一步步变成现实。今天,你们是天选之子,你们这一代人将运用这些技术造福人类。

未来十年,“物联网”将超出“人联网”一百倍。如果你仔细想想,你个人可能只有一百个有意义的“物”,这意味着将来几乎世界上每一件能够想到的“事物”都会接入互联网。那么这么一个无所不在的“物联网”将会被用来增强人类,还是监控人类?细思恐极,而这一切将取决于你们。

未来十年,我们的设备和云将知道我们想要什么,甚至这一切会发生在我们自身意识到这种需求之前。而不是局限在当前的Google Now能告诉我们餐馆和交通等信息,它将能告诉我们“我在会议上应该说些什么?”,或者是“我应该怎样邂逅那位坐在酒吧的女孩?”当计算机助手变得比我们还聪明,我们究竟是被解放,还是被边缘化?未来的结果取决于你们。

未来十年,大部分人类工作可被机器取代。机器将取代工厂工人、司机、护士、会计、律师助手、教师,或者其他带“助理”、“代理”或“经纪”等字样的一系列职位。甚至是部分医生、律师和教授也将部分地被机器取代。(对不起现场的教授们)这些机器将帮助我们创造世界上的大部分财富,解放我们的时间。我们将变得更具创造性并且找到人类的**?还是成为这些机器的宠物?这一切也将取决于你们。

你们正是把科幻小说一步步变成工程现实的这一代人。或许,很多毕业典礼演讲中都会有这样的表述“你们是最关键的一代人”,但是今天,我认为确实如此!

毋庸置疑,你们选对了学校。在培养计算机科学家或工程师方面,没有哪一所大学比卡内基梅隆大学更出色,这也是这所学校毕业生的薪水雄冠全球的原因。我曾在苹果、谷歌和微软工作时雇佣很多学校的毕业生,我可以坦诚的告诉大家:你们,卡内基梅隆大学的毕业生,你们是最好的,没有之一!

此时你可能会认为成功将唾手可得,因为你们从最好的大学毕业,即将进入最令人兴奋的领域,尤其是在你们年富力强的人生阶段。



李开复被授予卡内基梅隆大学荣誉商业管理博士学位



没错,你们能力的确强大,但不要忘记一句伟大的哲学家……哦,是蜘蛛侠(Spiderman)的那句名言:“能力越强,责任越大”。

你们有责任把时间花在那些真正困难的问题上。而不要把时间浪费在机器未来能做的事情上,也不要把才华浪费在重复学校所学的基础知识,更不要接受一份没有挑战的工作。勇于冒险,孜孜以求,以“成为某个特殊又有用领域的最顶尖人才”为目标,为己任。

你们有责任做出明智选择。在技术的选择上,要致力于能把世界变得更美好的技术,而不能仅仅局限于先进或很酷。在工作的选择上,要选择能拯救生命的工作,而不是破坏生命的工作;要选择强化人类的工作,而不是取代人类的工作。选老板时,要选择有大爱之人,而不是贪婪小人;要选择想帮助世界的善人,而不是想征服世界的戾气之人。

你们有责任预见和阻止技术成为伤害人类的武器,防止科幻小说中常见的悲剧结局发生。尼克·伯斯托姆(Nick Bostrom)在《超级智能》(Superintelligence)一书中称,“随着机器越来越智能,任何沾沾自喜都是不合时宜的。作为技术专家,你将面临一次有史以来最艰难的考试。你必须保持战战兢兢的最佳状态进入考场。考试过关则实现人类梦想,考试失败则毁灭人类未来。”

最后,我想用亚瑟·克拉克(Arthur Clarke,英国科幻小说家)说过的一句话,也是我最喜欢的科幻名言来结束这次演讲:任何真正的高科技都与魔法无异。

2015届的毕业生,祝贺你们,你们将梦想成真,开创魔法般的绚烂未来!谢谢!



From Science Fiction to Engineering Reality

Kai-Fu Lee

May 17, 2015

Commencement speech delivered at CMU School of Computer Science

First, congratulations to the graduates form the CMU School of Computer Science! I'm deeply honored and grateful that you have invited me to be a part of this seminal moment in your lives. I’m honored and humbled that among many more accomplished SCS graduates, I was chosen to receive an honorary degree this year.

I received my first Ph.D. in four and a half years. This second Ph.D. took 27 years. This program must be getting a lot tougher!

I remember coming to CMU for the first time in 1983, when I was trying to decide what grad school to go to.I was like a kid in the candy store. CMU researchers were teaching machines to talk, listen, see, and walk … I mean hop. And I decided to attend CMU after I saw the machine of my dreams: a coke machine connected to the Internet, to ensure that we had an infinite supply of caffeine.

In 1983, this all seemed like science fiction to me. But now looking back, those technologies were just in their infancy. In 2015, 32 years later today, science fiction is about to become engineering reality. And you are the chosen ones to use them to make the world a better place.

In the next 10 years,the Internet of things will outnumber the Internet of people by two orders of magnitude. If you think about it, you probably only own a hundred meaningful things. So that means virtually every thinkable thing will be connected to the Internet. Will they be used as human amplification or human surveillance? That will be up to you.

In the next 10 years, **ices and the cloud will usually know what we want before we know it, and better than we know it. Not just Google Now telling you about restaurant and transportation. But also questions like "What should I say at the meeting?" or "How should I approach this girl at the bar?” With computer assistants getting smarter than us, will we be liberated or marginalized? That will be up to you.

In the next 10 years, most human jobs will be doable by machines. Machines will replace factory workers, drivers, nurses, accountants, any job that has the word "assistant" or "agent" or "broker" in it. And even some doctors, lawyers, and professors will be partially replaced by machines. (sorry professors sitting behind me) These machines will help us produce most of the world's wealth, freeing much of our time. Will we become creative and find mankind’s destiny, or become mindless pets of these machines? That will be up to you.

You are the generation that will make science fiction into engineering reality. Many commencement speech talks about "you are the generation that matters…". But in your case, it is true!

And undoubtedly, you've chosen the right school. There is no better school than CMU to train you to be a computer scientist or engineer. That's why this school's graduates are the highest paid graduates on the planet. I've hired for Apple, Google, MS — I can tell you: you, the CMU graduates, are not "one of the best". You are THE best.

So you might think you've got it made! You are graduating from the best school, and entering the most exciting field, at a time when you possess the power of youth and productivity.

Yes you have the power. But please remember what the world's greatest philosopher … Spiderman said: "with great power comes great responsibility."

You have a responsibility to work on the hard problems. Don't waste your time doing what machines will be able to do. Don't waste your talent repeating just what you learned at school. Don’t accept a job that doesn’t challenge you. Take risks and vigorously learn, so that you can become the very best in something very specific and very useful.

You have a responsibility to choose wisely. Don't just work on technologies that are advanced and cool, work on technologies make the world a better place. Choose jobs that save lives, not destroy them. Choose jobs that empower people, not displace them. Choose to work for CEOs who has more compassion than greed, who cares more about world peace than world domination.

You have a responsibility to foresee and prevent the dangers of technology and prevent the dystopian endings often found in science fiction. Nick Bostrom said in his book "Superintelligence", "As machines gain superintelligence, any feeling of gee-whiz exhilaration would be out of place. You need to have a bitter determination to be the best that you can be, much as you are preparing for a difficult exam that will either realize your dreams or obliterate them."




I want to close with my favorite science fiction quote from Arthur Clarke: Any sufficiently advanced technology is indistinguishable from magic.

Graduates: Congratulations, you will realize your dreams, and make magic happen! Thank you!





 楼主| focuson 发表于 2015-6-5 14:24 | 显示全部楼层
yyy71cj 发表于 2015-6-5 05:59
算法是一种程序的灵魂。
        但是你若想把掌握的算法卖给老板,那只能说明两个问题:1、你试图 ...


算法是解决实际问题的。把算法卖给老板就是把解决方案卖给老板

李开复学术能力极强。 你所谓的他不懂社会,因为你认为现在中国这种集权社会,学者都只能像郭沫若那样?那当年李大钊鲁迅都是错误的了。


另外,本来我发帖是想说他前几天回母校 卡耐基梅隆大学演讲并被授予工商管理名誉博士的事情。却不知道为什么发不出来。 他在1985年获得卡耐基梅隆大学计算机博士学位。。卡耐基梅隆大学计算机科学专业一直在美国名列前茅。牛校。

keer_zu 发表于 2015-6-5 17:11 | 显示全部楼层
架构也很重要
 楼主| focuson 发表于 2015-6-5 23:21 | 显示全部楼层
yyy71cj 发表于 2015-6-5 22:42
李大钊的形象早就淡忘在中国人的脑海里了。鲁迅的印象稍微还深刻些,不过我相信下一代肯定会将他淡忘。
...

谁也不会给老板去讲技术。。老板要你解决问题。解决问题的核心,在计算机里面,经常是算法。你掌握了算法。就帮老板解决了最关键的问题。这就是**的思想。。想不学技术得到老板的赏识? 那要找个好爹才行。
 楼主| focuson 发表于 2015-6-6 11:44 | 显示全部楼层
yyy71cj 发表于 2015-6-6 07:16
看看,说着说着,就把概念给换了。
        有技术,与解决问题,正是天朝社会的两大矛盾!
  ...

完全没看明白你想要说什么。

你想说技术在中国没有用?那你还上这个论坛干嘛? 这个论坛就是技术论坛。

没有哪个老板会说技术没有用。能给企业解决问题的。特别是实业(不是房地产),最终都是技术问题的解决。我就是一个公司的老板。我们是高科技企业。凭技术在中国占领市场一角。
keer_zu 发表于 2015-6-8 14:29 | 显示全部楼层
真是一篇很好的**,联想到几天前携程所出的问题,感觉还是这些基础不牢固啊。算法真的是太太重要了。谢谢f兄弟的分享。
1026869700 发表于 2015-6-8 22:39 来自手机 | 显示全部楼层
表示现在玩了一圈语言,控制器之后,才感觉到算法才是灵魂。
yinhaix 发表于 2015-6-9 15:11 | 显示全部楼层
李大神的
lifebird 发表于 2015-6-17 07:33 | 显示全部楼层
孔乙己其实是了不起的人物,孔乙己说自己是窃书,虽属强辩,却无抵赖之意,也能博人一笑,别以为鲁迅是专门写孔乙己,鲁迅的目的是写那些无知的人们。我们每个人都是社会的一分子,社会环境好坏和我们每个人都有关系,抱怨社会缺少公德正义前请先反省一下自己在社会中扮演的角色,是正面的还是负面的?
lifebird 发表于 2015-6-18 08:36 | 显示全部楼层
yyy71cj 发表于 2015-6-17 09:40
今天早晨送我儿子上学回来,发现熟悉的那条路,横七竖八地塞满了车,以致于连电瓶车都走不了。我一路骂骂 ...

所谓君子独善其身,你的做法是对的,但身外身内并无严格界限且相互影响,所以也要把握个度。
keer_zu 发表于 2015-6-18 09:00 | 显示全部楼层
yyy71cj 发表于 2015-6-18 08:54
谢谢!
记得鲁迅说过:世上本无所谓对错,说对的人多了,也就成了对的 ...

那xx还说过:谎言说过百遍就是真理。
lifebird 发表于 2015-6-19 07:45 | 显示全部楼层
愚夫和智者之别,本在一念之间,谎言啊谎言,叫我如何远离你。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

241

主题

3680

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部