恶心代码
来源:互联网 发布:javascript post 传值 编辑:程序博客网 时间:2024/04/28 16:49
//恶心代码 留着 以后再解决吧
Quadratic Surface
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <iostream>#define eps 1e-8using namespace std; int sign;double e[4][4],E[4][4];int rankk(doubleArray[][4],int m,intn); int IsZero(doublenum);double det(doubles[][4],int n){ intz,j,k; doubler,total=0; doubleb[4][4]; if(n>2) { for(z=0;z<n;z++) { for(j=0;j<n-1;j++) for(k=0;k<n-1;k++) if(k>=z) b[j][k]=s[j+1][k+1]; else b[j][k]=s[j+1][k]; if(z%2==0) r=s[0][z]*det(b,n-1); else r=(-1)*s[0][z]*det(b,n-1); total+=r; } } else if(n==2) total=s[0][0]*s[1][1]-s[0][1]*s[1][0]; returntotal;}void check(int pp,int p4,int sign,int k){ if(pp==1&& p4==1) printf("coincident planes/n"); if(pp==3&& p4==4 && sign==1 && k==1) printf("ellipsoid (imaginary)/n"); if(pp==3&& p4==4 && sign==-1 && k==1) printf("ellipsoid (real)/n"); if(pp==3&& p4==3 && k==1) printf("elliptic cone (imaginary)/n"); if(pp==3&& p4==3 && k==0) printf("elliptic cone (real)/n"); if(pp==2&& p4==3 && k==1) printf("elliptic cylinder (imaginary or real)/n"); if(pp==2&& p4==4 && sign==-1 && k==1) printf("elliptic paraboloid/n"); if(pp==2&& p4==3 && k==0) printf("hyperbolic cylinder/n"); if(pp==2&& p4==4 && sign==1 && k==0) printf("hyperbolic paraboloid/n"); if(pp==3&& p4==4 && sign==1 && k==0) printf("hyperboloid of one sheet/n"); if(pp==3&& p4==4 && sign==-1 && k==0) printf("hyperboloid of two sheets/n"); if(pp==2&& p4==2 && k==1) printf("intersecting planes (imaginary)/n"); if(pp==2&& p4==2 && k==0) printf("intersecting planes (real)/n"); if(pp==1&& p4==3) printf("parabolic cylinder/n"); if(pp==1&& p4==2) printf("parallel planes (imaginary or real)/n");}bool judge(double a,double b,double c,double g,double h,double f){ if(det(e,3)<eps) { if(a*b*1.0+a*c*1.0+b*c*1.0-g*g*1.0-h*h*1.0-f*f*1.0>0) return 1; else return 0; } if(det(e,3)>eps) return1; else if(det(e,3)<0) return0;}int t;int main(){ inti,j,pp,p4,alpha,k; doublea,b,c,f,g,h,p,q,r,d; scanf("%d",&t); while(t--) { sign=0; scanf("%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf",&a,&b,&c,&f,&g,&h,&p,&q,&r,&d); e[0][0]=a;e[1][0]=h;e[2][0]=g; e[0][1]=h;e[1][1]=b;e[2][1]=f; e[0][2]=g;e[1][2]=f;e[2][2]=c; E[0][0]=a;E[1][0]=h;E[2][0]=g;E[3][0]=p; E[0][1]=h;E[1][1]=b;E[2][1]=f;E[3][1]=q; E[0][2]=g;E[1][2]=f;E[2][2]=c;E[3][2]=r; E[0][3]=p;E[1][3]=q;E[2][3]=r;E[3][3]=d; pp=rankk(e,3,3); p4=rankk(E,4,4); if(det(E,4)>eps) sign=1; elseif(abs(det(E,4))<eps) sign=0; else sign=-1; k=judge(a,b,c,g,h,f); check(pp,p4,sign,k); } return0;}int IsZero(doublenum){ returnfabs(num)<=0.00001?1:0;}int rankk(doubleArray[][4],int m,intn){ inti,j,k,l,i1,j1,rank_of_Array,main_row,main_col; doublemain_element,mik; doubletemp; for(i=0;i<m;i++) { main_element=Array[i][i]; main_row=i; main_col=i; for(j=i;j<m;j++) for(k=i;k<n;k++) { if(fabs(Array[j][k])>=fabs(main_element)&&i!=j) { main_element=Array[j][k]; main_row=j; main_col=k; } } for(l=0;l<n;l++) { temp=Array[main_row][l]; Array[main_row][l]=Array[i][l]; Array[i][l]=temp; } for(l=0;l<m;l++) { temp=Array[l][main_col]; Array[l][main_col]=Array[l][i]; Array[l][i]=temp; } if(IsZero(main_element)==1) break; for(i1=i+1;i1<m;i1++) { temp=Array[i1][i]; for(j1=0;j1<n;j1++) Array[i1][j1]=Array[i1][j1]-Array[i][j1]*temp/main_element; } } rank_of_Array=0; for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(IsZero(Array[i][j])==0) { rank_of_Array++; break; } else continue; } } returnrank_of_Array;}
- 恶心代码
- 恶心
- 临时文档8--好恶心的代码
- VBS代码--很恶心的整人效果
- 怎么java的代码看着这么恶心~~?
- 疯狂元宝的代码分析 揭露恶心的腾讯
- 修改一行代码的顺序引发恶心bug
- 微软编辑器的代码高亮 (恶心模拟)
- 变量的定义:让我们的代码不再"恶心"
- 今天写了这样一段代码, 恶心到自己了!
- 超级恶心
- 略微恶心
- 我是有点闲了,所以我要对代码进行优化,无论多恶心
- 最近练手的最恶心的网页(MD这么长的代码)。。。
- 恶心的一天
- 恶心的笑话(转贴)
- 真tmd恶心~~
- 恶心的一天
- VC设计分割视图通用创建框架
- 设计模式之王者原则 开闭原则
- URAL 1073. Square Country
- USB-Blaster--名称已用作服务名或服务显示名
- 为何使用数据库
- 恶心代码
- 关于分形
- 学习DSP的好网站
- filter:登陆验证和权限验证
- ImageView的属性android:scaleType
- ORACLE 日期函数
- 虚继承与虚基类的详解
- C++中的4种类型转换方式
- ARM体系结构与编程学习(十三)