传送门

设球心的坐标为未知量

用最后一个点来表示球面到球心的距离,那么它和前n个式子相等

移项乱搞

最后高斯消元

#include <cmath>
#include <cstdio>
#include <iostream>
#define N 21 using namespace std; int n;
double a[N][N]; inline void gs()
{
int i, j, k;
double div;
for(j = 1; j <= n; j++)
{
k = j;
for(i = j + 1; i <= n; i++)
if(fabs(a[i][j]) > fabs(a[k][j])) k = i;
if(k != j) swap(a[k], a[j]);
for(i = j + 1; i <= n; i++)
{
div = a[i][j] / a[j][j];
for(k = j; k <= n + 1; k++)
a[i][k] -= a[j][k] * div;
}
}
for(i = n; i >= 1; i--)
{
for(j = i + 1; j <= n; j++)
a[i][n + 1] -= a[i][j] * a[j][n + 1];
a[i][n + 1] /= a[i][i];
}
} int main()
{
int i, j;
scanf("%d", &n);
for(i = 1; i <= n + 1; i++)
for(j = 1; j <= n; j++) scanf("%lf", &a[i][j]);
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
{
a[i][n + 1] += a[n + 1][j] * a[n + 1][j] - a[i][j] * a[i][j];
a[i][j] = -2 * a[i][j] + 2 * a[n + 1][j];
}
gs();
for(i = 1; i <= n; i++) printf("%.3lf ", a[i][n + 1]);
return 0;
}

  

最新文章

  1. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)
  2. 了解HTML 元素分类
  3. Spring4.0编程式定时任务配置
  4. 如何hash一条有向边
  5. wikioi 1973 Fibonacci数列【输出第N项的值】
  6. 使用VisualSVN Server搭建SVN服务器
  7. 【原创】Android 从一个Activity跳转到另外一个Activity
  8. Linux文件的查找
  9. python学习第十三天 -模块和包
  10. OSCHina技术导向:web内容管理系统Magnolia
  11. PHP中递归函数的一个常见逻辑问题
  12. 在tornado中使用celery实现异步任务处理之中的一个
  13. MongoDB【第二篇】集群搭建
  14. 访问Access日期字段
  15. 201521123103 《Java学习笔记》 第四周学习总结
  16. sql+PHP基础+面向对象基础简单总结
  17. ubuntu12.04destdrop删除不必要的软件
  18. Spring官方文档下载
  19. shell 日前 之check 年月日
  20. Ubuntu 突然上不去网了怎么办

热门文章

  1. 网页设计必备工具 firefox Web Developer插件 CSS工具组教程
  2. nmon各配置项含义介绍
  3. Django添加tinyMCE编辑器
  4. Luogu P4463 [国家集训队] calc
  5. Heacher互助平台 α版本冲刺
  6. 新数据的GT列表
  7. linux yum 安装mysql
  8. Bootstrap 原始按钮
  9. iOS开发遇到的坑之一: 开发遇见如下错误:Undefined symbols for architecture arm64
  10. 移动产品设计之ios系统的导航