博文
[转]2004年世界八大趣闻(2005-06-28 14:08:00)
摘要:2004年世界八大趣闻一睹为快 转:金羊网-新快报 俄罗斯新闻网12月21日报道,法新社日前评出了2004年度世界八条最有趣的新闻,以便“让人们更好地了解人类的天性”。 1、父母发现13岁千金是男儿身 中国一对夫妇偶然发现:他们13岁大的千金竟然是男儿身。发现过程完全出于偶然。 起初,父母注意到他们的“女儿”身上一直没有出现明显的女性特征,对孩子非常关心的父母将“女儿”带到医院进行了检查。结果医生非常遗憾地通知他们:孩子是一个男孩。原来,这个小男孩先天有缺陷,他的性器官隐藏在身体内部。在经过了三个小时的手术治疗之后,这对夫妇“捡回了”自己的儿子。 2、想打裁判自己先摔倒 摩尔多维亚“罗卡”俱乐部的主席在自己球队的一场比赛中看到裁判要判给对手一个点球时怒火中烧,愤怒的他难以抑制自己心头的怒火,从贵宾席上直接冲到了球场,决定要给这个讨厌的裁判一点厉害瞧瞧。结果经过训练的裁判在这场百米追逐中获胜,他甚至冲出了球场边界。而怒气冲冲的主席不但没有追上裁判,还从台阶上摔了下来扭了脚。 3、上校要农民装死“博”升职 卡赫林是印度西北部一支炮兵部队的上校。为了获得一枚“勇敢”勋章,他向上级出示了自己击毙叛乱分子的照片。然而,授勋委员会对他的证据的真实性产生了怀疑,因为照片上的人他们实在是太熟悉了,授勋委员会的一名成员几天前还刚刚见过这个人。 经过调查发现,卡赫林上校伙同自己的属下收买了当地的两名农民,让他们装扮成死者拍照。 4、火车无人驾驶自开三小时 意大利的铁路工人曾花三个小时的时间去追一辆没有司机的火车头———因为司机从车头摔了出来。 这辆没人驾驶的火车头以100公里的时速行驶了整整三个小时,沿途的所有车站在接到警告后都立即对这辆无人驾驶机车大开绿灯,直到它最后因为燃料燃尽而停在一个小站上。 5、天价蘑菇变垃圾 英国伦敦的几位富翁决定送给自己一件特别的礼物,他们想看看谁能买到世界上最贵的蘑菇。结果他们中的一个人花了5.3万美元买到了一朵850克的巨型蘑菇。但最终他们谁也没有成为这场比赛的胜利者。因为这些蘑菇在冰箱里放了四天之后,全都发霉变烂了。 6、狗粮被误当佳肴 以色列政府曾没收80000罐狗粮,这些名为“小狗爱吃的小鸡”的狗罐头被骗子们重新贴上标签,结果被许多人当成了一种高级菜肴。以色列最后不得不......
[转载]一种快速可预制的随机数组产生方法(2005-06-27 21:03:00)
摘要: 在工程软件的设计和安全系统设计中,建立模型、产生密码经常需要使用到随机数组。然而计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。 伪随机数并不是假随机数,而是指有规律的数,事实上都是由计算机经过一定的算法计算得到的。大家常用的方法是根据一个给定的数作为种子,如采用变化的时间作为种子,调用srand((unsigned)time(NULL))后执行rand()从而获得一个随机数。很显然,相同或相近的种子得到的随机数将会是完全一样或互相接近。 因此要产生真正意义的随机数,那么种子首先必须是随机的。随机的种子可以通过外接的硬件随机发生器产生,据说最新的intel处理器即采用了读取cpu上热噪声的方法来获取随机数。当无法利用硬件的随机发生器时,我们常采用的办法是,在两次调用srand((unsigned)time(NULL))之间加入一定时间的延时。但当需要产生一个很大的随机数组时,这种延时是漫长而不可忍受的。而且事实上由于延时具有规律性,产生的随机数也不那么随机。 一种容易想到的产生随机数组的方法是设计出复杂的算法,从而减小数组结果的规律性。这种方法需要很高的技巧,也不太适合一般程序的调用。 此外,在很多情况下,我们不仅要求产生随机的数组,同时还对产生的数组有统计规律上的要求。如必须服从正态分布,均匀分布等。简单的调用srand和rand函数无法满足需要。Matlab是一种功能强大的工程数学软件,利用其随机数组产生模块,我们能很容易的得到服从各种分布形式的大数组,其随机数产生的原理即是基于复杂的算法的。因此我们自然想到利用matlab产生的随机数表来作为随机数池,从中获得我们所需要的随机数组。 本随机数组产生方法由三部分组成:其一是txt文件的随机数池,这里我利用matlab产生1000个服从正态分布的随机数,10个一排,每两个数字之间间隔3个空格,行首3个空格存为文本文档,第一个数序号为0,然后按先行后列序号依次排列到999;其二和三分别是从随机数池中捞取随机数的函数类的.h文件和.cpp文件。 在捞取随机函数的函数类中,定义CStdioFile的file1,打开作为随机数池的txt文档。首先以时间作为种子,......
编程到底要不要学好数学?(2005-09-14 11:39:00)
摘要:[本人加注]讨论“编程到底要不要学好数学”之类的帖子见的不少了,这其实是一大误区,相当于战士在质疑该不该用枪作战。[转载]:::数学在计算机图形学中的应用:::[原文]Mathematics for Computer GraphicsGreg Turk, August 1997"What math should I learn in order to study computer graphics?" This is perhaps the most common general question that students ask me about computer graphics. The answer depends on how deeply you wish to go into the field. If you wish to begin to use off-the-shelf graphics programs then the answer is that you probably do not need to know very much math at all. If you wish to take an introductory course in computer graphics, then you should read the first two sections below for my recommendations (algebra, trigonometry and linear algebra). If you want some day to be a researcher in graphics then I believe that you should consider your mathematics education to be an ongoing process throughout your career. If you do not particularly care for mathematics, is there still a chance of working in the field? Yes, a few areas within computer graphics are not ......
[转]如何涉足游戏业(2005-06-26 00:32:00)
摘要:游戏行业可能是现今这个世界上能够找到的为数不多的迷人工作之一。在高科技的外表掩护下,她让你充分享受创作和玩耍游戏的乐趣。最近一些成功的传奇故事更是把她捧上了天。id Software 已经成了成千上万想要成为游戏开发者的家伙们每天必做的美梦。 你也是这帮家伙中的一员?好,就让我们来谈谈怎样进入这个迷人的行业,或者说你怎样做一只游戏。这两者确实存在着某些微妙的差别,不过为了不打击你宝贵的积极性,本文准备避开此类令人讨厌的话题。 万事开头难 “我从那里下手?” 这是每个家伙在开始时都要问的一句话。古人云:“三思而后行”,在你行动以前,先订出一个计划,这无疑才是明智之举。否则你只会成为一个迷失在沙漠里的亡魂,永远也找不到你渴求的绿洲。 如果没有一个明确、合理、可行的计划,你将不可能得到你所想要的结果,唯一的结果就是你始终无法完工。一个可笑的例证是作者本人,三年前我一步步走上这条绝路,其最重要的一个原因就是没人写这篇文章给我看。 话说回来,要一个新手搞出一个明确、合理、可行的计划,跟派一个婴儿去争夺奥运会金牌没什么两样。我对此的建议是先从小一点的计划做起。 选定目标 “我想在电脑游戏行业里找到一个工作。” 对这个目标的标准答案通常会归结为“做一个游戏 DEMO”。这是否确切意味着什么呢? 它代表着你将写一些程序,或是做一段动画,再不就是一堆音乐和音效。不过这可不是随便做做就行的,这些东西必须适合于视频游戏,最好它们就是一个具备商业加专业水准的视频游戏的一个部分。 对程序员们来说,这会导致出一个拥有 2D 或是 3D 外观的复杂引擎,一大堆必备的游戏辅助开发工具,比方说地图编辑器什么的。你做的工作结果越接近实际的游戏产品,就越有可能给潜在的雇主或是投资者留以更深刻的印象。比方说你做了一个平台式的跳跃游戏,有各种关卡、得分、生命、宝物等等,你实际上已经实实在在地证明了你确实理解一个视频游戏的基本工作过程,你还证明了你有着为潜在的雇主或是投资者去完成一个制作项目的积极主动性,最后还证明了你有坚持直到成功的毅力。 你的游戏产品越出色,它就越可能帮......
[转]What Language Do I Use[我要使用哪种编程语言?](2005-06-26 00:23:00)
摘要:这是每个游戏编程FAQ里都有的问题。这个问题每星期都会在游戏开发论坛上被问上好几次。这是个很好的问题,但是,没人能给出简单的答案。在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的主要编程语言的介绍及其优缺点。希望这篇文章能帮助你做出决定。目录:1、C语言2、C++3、C++与C的抉择4、汇编语言5、Pascal语言6、Visual Basic7、Java8、创作工具9、结论-------------------------------------------------------------------------------- 原 文:What Language Do I Use 译 者:Sunlxy 版 本:the first edition(Ver 1.0)-------------------------------------------------------------------------------- 这是每个游戏编程FAQ里都有的问题。这个问题每星期都会在游戏开发论坛上被问上好几次。这是个很好的问题,但是,没人能给出简单的答案。在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的主要编程语言的介绍及其优缺点。希望这篇文章能帮助你做出决定。1、C语言 如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是它们的孙子辈。C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。 C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了......
[时文]数字证书 (2005-06-23 17:39:00)
摘要:Digital Certificates Digital certificates are data files used to establish the identity of people and electronic assets on the Internet. They allow for secure, encrypted online communication and are often used to protect online transactions. Digital certificates are issued by a trusted third party known as a certification authority (CA). The CA validates the identity of a certificate holder and “signs” the certificate to attest that it hasn’t been forged or altered in any way. New Uses For Digital Certificates Digital certificates are now being used to provide security and validation for wireless connections, and hardware manufacturers are one of the latest groups to use them. Not long ago, VeriSign Inc. announced its Cable Modem Authentication Services, which allow hardware manufacturers to embed digital certificates into cable modems to help prevent the pirating of broadband services through device cloning. Using VeriSign software, hardware makers can generate cryptographic keys and ......
[时文]缓冲溢出(2005-06-23 17:36:00)
摘要:Buffer Overflow Do an Internet search on the term buffer overflow, and you’ll come up with hundreds of thousands of links, most related to security. In the National Institute of Standards and Technology’s ICAT index of computer vulnerabilities, six of the top 10 involve buffer overflows. In 1999, buffer overflow was named the No. 1 computer vulnerability. Five years later, it’s still a major problem. If you’ve ever poured a gallon of water into a pint-size pot, you know what overflow means ——water spills all around. Inside a computer, something similar happens if you try to store too much data in a space designed for less. Input normally goes into a temporary storage area, called a buffer, whose length is defined in the program or the operating system. Ideally, programs check data length and won't let you input an overlong data string. But most programs assume that data will always fit into the space assigned to it. Operating systems use buffers called stacks, where data is stored temp......
[时文]家庭自动化技术(2005-06-23 17:22:00)
摘要:Home automation technologies X10 Automation: Lighting, Climate, Security, Home Cinema and Beyond When it first appeared in 1978, X10 became the standard in home automation technology. Using conventional home electrical wiring, X10 transmits digital packets through up to 256 compatible devices on a single power circuit. A control centre for an X10 system may be a standalone hardware unit or a PC running Linux or Windows. Remote controls and keypads can also be used to control light dimmers, TVs, VCRs, security alarms, door locks and surveillance equipment. With no specialised wiring required, X10 is an affordable and reliable beginning to any digital home project. For around $250, an X10 starter kit usually contains PC and hand-held remote controls as well as modules for two appliances, two lamps and a ceiling-mounted light. To use a module, you simply plug it into a power socket and then plug the appliance into the module. The appliance is then controlled via an infrared remote control......
[时文]数字光处理(2005-06-23 17:16:00)
摘要: Digital Light Processing When one first hears about digital light processing (DLP), it seems almost impossibly complex, even magical —— millions of tiny mirrors on a chip the size of your thumbnail, each of them capable of moving thousands of times per second to create a digital image. In fact, DLP gives new meaning to the phrase “smoke and mirrors” as it applies to computer-related technology. How DLP Works In essence, DLP is a nanotechnology implementation of the old survival technique of using a mirror to signal for help ——its purpose is to shine a controlled series of light flashes on a target to send a message. The mirror in this case is part of an optical semiconductor called a digital micromirror device, or DMD. The DMD chip contains not one but an array of up to 2.1 million microscopic mirrors, each just 16 micrometers square (less than one-fifth the size of a human hair) and 1 micrometer apart. The DMD chip is driven by a digital video or graphic signal in which each dig......
[转载]电脑为什么能战胜人脑(2005-06-23 17:06:00)
摘要:http://www.sina.com.cn 2004年06月17日 11:00 北京科技报 http://tech.sina.com.cn/other/2004-06-17/1100376807.shtml 作为人工智能的产物,电脑最终战胜人脑证明了人的厉害。电脑能胜人脑不只是技术问题。计算机专家吴文虎认为,关键是让电脑模仿人的思考,赋予机器思维。而将抽象的理念转化成具体的程序,正是体现了人的智慧。归根结底,只有人才能发现人的弱点,进而战胜人自己。 没有思维的电脑怎样像人一样下棋。///////////////// 北京时间12日晚,中国首次人机对弈有了结果。国际特级大师诸宸再次败给了笔记本电脑“紫光之星”,加上8日已经输给“紫光之星”一盘,在两局的人机较量中,诸宸完败。 赖俊是清华大学的学生,在和棋后诸宸的比赛中,他有幸一直坐在诸宸对面———他负责操作“紫光之星”。他清楚地记得,当诸宸大势已去,在43手走了一步臭棋后,电脑突然跳出一个对话框:“这是一步坏棋,是悔棋还是继续?”因为是代替诸宸走棋,赖俊选择“继续”。“给人感觉很无厘头。”赖俊说。即便是在取胜关头还不忘幽默一把似乎只有电脑才会干出来。因为通过复杂的计算,电脑看到了人的思维没有触及到的几十步甚至几百万步之后,在数百万种的选择中已经确定了胜势。而人却无法精确预料到那么远,即便是再强的大师也无能为力。 “‘紫光之星’之所以强大,有赖于它的软硬件的强力组合。”清华紫光的邱聚兴表示。 “紫光之星”采用了世界领先的64位核心处理器,软件则是国际上最好的国际象棋软件弗力茨。据说在短时间内能精确算出胜率极高的第13步布局运算,相当于国际等级分高达2600分,超过诸宸约100分。 “还有一点很重要,关键是让机器像人一样思考。”计算机专家、清华大学的吴文虎教授认为。 超级计算机下棋的原理有两种,先是根据自身存储的棋谱库进行搜索,找出最佳方案;但如果找不到,它就会根据棋类规则自己思考,而这个思考速度是人类大脑所无法比拟的。 比如“深蓝”,它下棋的原理是:把所有的可能性化成树形图,计算每种可能的走法,把分数付给树形图的每个端点,分数越高局面越好。然后把分类回送到起始局面。得分最高的树杈对应着计算机的走法,而得分最低的树杈则对应对手的走法,程序确定了一步“好”棋后,一旦算出其他招儿法会导致较差的局面,就终止......
