Skip to content

C++中的计算几何要注意的地方

C++并不是一门擅长处理数学问题的计算机语言,但有时不得要处理这类问题,也还是得想些办法。今天看了一点点关于用C++处理计算几何的知识,于是就写在这里。粗浅,别见怪。首先我们要用到一些数学函数,那么要包含cmath头文件,这点是显然的。

用double,而不用float。
数据类型float的精度太低,涉及到一些运算时,float可能会丢失精度,所以最好选用double类型。

如何求圆周率PI。
如果是近似情况,我们可以直接定义const double PI=3.1415926,但如果要准确的值,我们可以这样做,const double PI=acos(-1),acos是余弦值的反函数,我们知道cosPI=-1,于是就可以求出比较精确的PI值了。

double 0=0?
程序设计课程老师在讲到C/C++的数据类型的时候,都会提到double类型只是估算值。double 0并不是等于0,而是一个很接近0的数。比如说:
double t;
t=5;
if((t-5)==0){
    cout<<”Zero”<<endl;
}
这样子,if语句里面的内容是永远不法执行到的。要解决这个问题,具体做法是定义一个值很小的数,如double eps=1e-6 ,即eps=0.000001。判断t是否是0,则这样判断,if ( fabs(t-0)<eps ) .函数fabs的作用是取绝对值,当t与0的差的绝对值小于eps时,证明t很接近0,就认定两者相等。

一半一半

星期五下午,最后一科期末考试结束,本学期也终于算是告一段落。星期六一整天,人是迷糊糊的,因为考试的缘故,一度连续30个小时没有合眼睡觉,能坚持完周五上午和下午两科,已经算是个奇迹了,哪还有什么精力。直到今天才算是清醒了些。

广州这几天的天气热得出奇,坐在宿舍里也直抹汗,下午去游泳,人虽不多,却发现泳池里的水也是“暖和”的。学校统一在暑假为宿舍装空调,所有人期待那一天的到来。虽说期末考试才结束,从明天开始我们又要上课了。学校大刀阔斧地改革,把每年二个学期改成每年三个学期,接下来我们便要在盛夏的七月开始为期一个月的第三学期了,因为第三学期时间短,我们又习惯称之为小学期。小学期对于我们大二来说,无非还是上课,针对式地上课。作为计算机系的学生,小学期里我们大多数人都选修了程序设计课,整个小学期也有这一门专业课,真可谓专门地针对式训练了。大一的师弟师妹们就要惨一点了,他们在小学期唯一的任务便是军训,在酷暑之下,这绝对是一件十分难熬的事情。

在过去的这一学期,无疑是入学以来最难应对的一个学期,专业课多而且难,经常被压抑得不知道自己在干什么,而且很多东西于我们看来,学了实在没多大用处。在此之前,本想在学期结束了好好地痛批下本学期的课程设置的,但现在既然已经熬过来了,那股怨气便也消停了些。

四月份的时候我和同学一起组队参加了程序设计校赛,虽然成绩不错,但是仍然没有打入省赛,很遗憾。我们始终是实力有限,对很多算法和数据结构并不了解,这当然难以有很好的突破。打入省赛的目标也只能等明年再继续努力了。

在五月底的时候,社团举行了换届,于是我这个当了一年的技术部副部长也终于退位了。在一年的任期内,我们一起传播社团的理念,贯彻着我们免费修电脑的宗旨。我们社团虽然名声不大,但是口碑很好,这让我们很欣慰。在这期间,我学到了很多东西,特别是关于电脑和网站方面的技术,也认识了不少朋友,这些都让我收获不少,这段经历于我来说是很宝贵的。也希望新一届的管理员能把社团带上新的高度。

算算时间,大学也就这么一半一半了,过完两年,剩下两年。而实际上,留给我们的时间已经不到一半了。大三修完剩下的那二十几个学分,进入大四便是找工作或考研的阶段,基本没有什么课了。在这过去的一半时间时,虽然很多时候都是得过且过,但也不至于沦落到混日子的地步。我非常清楚自己现在要干什么,将来要干什么。有时候慵懒会让我忽略掉一些本应该做的事情,谁让我已经没了中学时候的那种拼劲了呢。大学的计算机教学都是那种泛式的教学,很难有什么方向性,至于自己往后要走哪个方向,当然得靠自己决定。很多人都是选择跟着老师走,老师教什么就学什么,也没有想过自己毕业以后到底要干些什么。我也为这种问题困惑过。计算机这种技术型学科,想要有作为就必须要某个领域内有自己所长,而学校这种广散网的方式不可能让你能在某个领域特别突出。能不能突出,得看学生自己有多重视。我思前想后,最终希望自己以后能从事Linux环境下的开发工作,在Linux平台下开发一些东西。但遗憾的是,学校并没有把Linux教学当回事,关于Linux的课程少之又少,于是又只能靠自己去摸索了。

小学期算上暑假,有两个多月的时候,当然也不能教这些时间闲过。我给自己定了几个计划,首先当然是坚持程序,连程序都不会写的计算机学生很难在往后有多少作为。此外,还要把Linux学一遍,是系统地全面地学一遍。最近喜欢上了看小说,村上春树的《1Q84》已经要看完第一册了,第二册也买到手了,很棒。

归并排序与快速排序谁快谁慢

用这两种不同的排序方法,分别对1000个无序的数进行排序,看谁更快。当然,也可以把1000替换成10000或者更多(前提是int没有暴掉)。
网上流传着一种快速排序的写法,是用两个指针分别从左至破口大骂和从右至左扫描,那样的代码也太复杂了吧。像下面这段程序写的,要简单得多。

继续阅读’归并排序与快速排序谁快谁慢’ »

23号的绝唱

终究,手肘受伤的詹姆斯带领着骑士,还是以2:4输给了凯尔特人。常规赛呼声最高的夺冠热门又一次倒在了季后赛。纵观这几年,一个非常不解的现象,常规赛MVP总是不能在当赛季最终带领自己的球队夺得总冠军。无论是05、06年的纳什,07年的诺维斯基,08年的科比,09和10年的詹姆斯。常规赛的强势就注定着季后赛的萎靡么?

网上有一种声音,他们说詹姆斯以前输球就怪队友不行,现在队友补强了,输球又怪自己手肘有伤。其实这种说法是有偏妥的。詹姆斯从来没有怪过队友,相反地,他是非常团结自己的队伍的,整个NBA,骑士队也是球员氛围最融洽的球队之一,这何来责怪队友之说?而关于手肘,这次季后赛,詹姆斯是伤了,但是起初他并没有主动向外界透露自己有伤,更没有把输球的责任归结给手伤。而是一直在带伤作战,装作啥伤都没有。真正在责怪队友,把输球原因说成手肘有伤的是我们这些球迷和那些体育媒体。

大家总是喜欢拿科比和詹姆斯来作比较,说着24VS.23之类的言论。而我对于科比,是不太喜爱的,尽管他的球技是绝对一流的,但我总觉得他球品有问题,看他的球看多了,我总这么认为。面对对手丝毫不讲情面也就算了,但是科比还表现得没有风度。在队友面前,科比也显得高人一等。而詹姆斯就不同的,他的球品绝对是好的,无论是对于队伍还是对手。这也是我成为了詹姆斯的球迷而无法成为科比球迷的原因。这只是我个人的看法,如果你是科比的球迷,对我的说法不赞同,你可以表示反对,但请不要争吵。
继续阅读’23号的绝唱’ »

有一所很不起眼的学校,它叫云帆实验学校

云帆实验学校是长沙市宁乡县教育局于2003年创办的一所复读学校。对,这只是一所没什么地位的复读学校。

2004年,云帆713名学生参加高考,本科一、二批上线365人,其中重本152人;

2005年,云帆1317名学生参加高考,本科一、二批上线691人;

2006年,本科一、二批上线949人;

2007年,本科一、二批上线1179人;

2008年, 云帆2389名学生参加高考,本科一、二批上线1554人,其中重本上线689人;

2009 年,云帆2568人参考,本科一、二批上线1696人,其中重本上线765人。其中彭巍、刘婷、谢毅荣获宁乡文科状元(600分),刘宏达荣获宁乡理科状 元(645分)。文科6人进入全县10名,37人进入全县50名。理科4人进入全县10名,17人进入全县50名。

继续阅读’有一所很不起眼的学校,它叫云帆实验学校’ »