平面坐标系里的几个公式
2008年11月1日 阅读(715)
1.三角形面积公式
已知三角形三个顶点,求其面积,直接使用叉积,如(x1,y1)(x2,y2) (x3,y3)
叉积是指(x2-x1,y2-y1) (x3-x1,y3-y1)两向量的叉积
s=0.5*abs( (x2-x1)*(y3-y1) -(y2-y1)*(x3-x1) )
2.平面多边形面积
对于凸多边形实际上利用了三角形面积求法,将多边形划分成了三角形
银河里的星星
1.三角形面积公式
已知三角形三个顶点,求其面积,直接使用叉积,如(x1,y1)(x2,y2) (x3,y3)
叉积是指(x2-x1,y2-y1) (x3-x1,y3-y1)两向量的叉积
s=0.5*abs( (x2-x1)*(y3-y1) -(y2-y1)*(x3-x1) )
2.平面多边形面积
对于凸多边形实际上利用了三角形面积求法,将多边形划分成了三角形 read more
http://acm.pku.edu.cn/JudgeOnline/problem?id=2084
很久没用java了,忘了很多了,因为java处理大整数运算非常方便,今天时间紧迫,破例使用一次
递推公式很简单
f(0) = f(1) = 1
f(n) = f(0)*f(n-1) + f(1)*f(n-2) 。。。+f(n-1)*f(0)
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Main {
public static void main(String[]args){
Scanner sin=new Scanner(new BufferedInputStream(System.in));
int n;
int i = 0;
BigInteger big[] = new BigInteger[101];
for(i = 0 ; i < 101 ; i++)
big[i] = new BigInteger("0");
big[0] = big[1].add(new BigInteger("1"));
big[1] = big[1].add(new BigInteger("1"));
for(i=2; i < 101 ; i++){
for(int j = 0 ; j < i ; j++){
big[i] = big[i].add(big[j].multiply(big[i-1-j]));
}//System.out.println(big[i].toString());
} read more
对于vmware的网络配置有三种方式:
桥接,NAT,host-only
对于桥接模式比较简单,直接选择即可,然后在客户机里直接配置网络,缺点是需要独立的静态IP地址,在ip地址比较稀缺的时候不方便使用。
nat模式
主要介绍host-only模式:
题目的意思是这样的:http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
给你一个h*w的矩形,用一个1*2的小矩形去填充,问有多少种填充方法,不考虑对称性。
关键点提示:
1.DFS部分
实际上是在枚举第i行的放置方法,由此便可以确定出该行及上一行的状态。 read more
目前运行mpi程序时,遇到如下问题:
1.运行mpirun -n 4 test
cannot connect to local mpd (/tmp/mpd2.console_balay); possible causes: 1. no mpd is running on this host 2. an mpd is running but was …
采用mpdboot命令尝试打开mpd时又遇到如下问题:
mpd failed to start correctly on duanple-desktop reason: 0 invalid port from mpd configration file /home/duanple/.mpd.conf not found read more
1.安装linux系统
选择在vmware上安装,这里在进行磁盘分区的时候,如果选择手动,可能出现如下提示:
"没有定义根文件系统,请回到分区菜单以修正此错误"
意思是我们需要建立一个分区,使他挂载在根文件系统里,只要将分区挂载点选择为:"/" 即可。
在这里,我建立了一个"/"分区,和一个swap分区。 read more
前阵子忙着看solaris,买了书,看了一阵,后来重新安排让搞异构编程环境,于是看交叉编译,最近老师安排熟悉mpi编程环境。。。
异构的话,还是先在windows,linux下用用吧,first step starts from windows.
1.需要有c,c++ or fortan的编译器,在这里我采用的是dev-cpp里的g++编译器,可以去迅雷上下,搜dev cpp即可,有的版本比较按照默认安装路径,否则会出现build错误,还是老实点吧 read more
zz自http://blog.csdn.net/pongba/archive/2008/07/20/2681668.aspx
庞加莱,这个被称为最后一位全才的人,对解题的心理学也非常有兴趣和研究。在演讲中可以发现,他对于自己解决数学问题过程中的心理过程作了深刻的反省,虽然庞加莱不是认知神经科学家,但演讲中的使用的类比以及描述基本上都是靠谱的。 read more
很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( )。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* … */ }is not and never has been C++, nor has it even been C.( void main( ) 从来就不存在于 C++ 或者 C )。下面我分别说一下 C 和 C++ 标准中对 main 函数的定义。
“The C programming Language(《C 程序设计语言》)用的就是 main( )。”— 这是因为第一版的C语言只有一种类型,那就是int,没有char,没有long,没有float,…………既然只有一种类型,那么就可以不写,后来的改进版为了兼容以前的代码于是规定:不明确标明返回值的,默认返回值为int,也就是说 main()等同于int main(),而不是等同于void main()。在C99中,标准要求编译器至少给 main() 这种用法来个警告。
1. C
在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The Cprogramming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main( void )
int main( int argc, char *argv[] )
(参考资料:ISO/IEC 9899:1999 (E) Programming languages — C 5.1.2.2.1 Program startup)
当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。 如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv[] )。
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0; 。 read more