zoukankan      html  css  js  c++  java
  • 高斯消元bzoj1013球形空间产生器

    This article is made by Jason-Cow.
    Welcome to reprint.
    But please post the writer's address.

    http://www.cnblogs.com/JasonCow/

    推方程设n位坐标视为方程组的n个未知数

    然后化为一般式。

    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    typedef double db;
    db a[15][15],b[15];
    bool Guass(int n);
    bool work();
    int main(){return work();}
     
    bool work(){
      int n;scanf("%d",&n);
      for(int i=1;i<=n;i++)scanf("%lf",&b[i]);
      for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
          db x;scanf("%lf",&x);
          a[i][j]+=2*(b[j]-x);
          a[i][n+1]+=(b[j]*b[j])-(x*x);
        }
      return Guass(n);
    }
     
    bool Guass(int n){
      for(int i=1;i<=n;i++){
        db Max=-1e9;int I=i;
        for(int j=i;j<=n;j++)if(fabs(a[i][j])>Max)Max=fabs(a[j][i]),I=j;
        if(I!=i)for(int j=1;j<=n+1;j++)swap(a[i][j],a[I][j]);
        db t=a[i][i];
        for(int j=i;j<=n+1;j++)a[i][j]/=t;
        for(int j=1;j<=n;j++)
          if(i!=j){
        db t=a[j][i];
        for(int k=1;k<=n+1;k++)a[j][k]-=t*a[i][k];
          }
      }
      for(int i=1;i<n;i++)printf("%.3lf ",a[i][n+1]);printf("%.3lf\n",a[n][n+1]);
      return 0;
    }
    ~~Jason_liu O(∩_∩)O
  • 相关阅读:
    XSS
    XSS
    检查空引用
    LockInt
    Unity Shaderlab: Object Outlines 转
    git 恢复单个文件的历史版本
    烽火HG220G-U E00L2.03M2000光猫改桥接教程
    mark mem
    转 class和struct最本质的区别
    unity shader base pass and additional pass
  • 原文地址:https://www.cnblogs.com/JasonCow/p/6785028.html
Copyright © 2011-2022 走看看