【球形空间产生器】

news/2024/9/28 23:08:19 标签: 算法

 题目

 

 

代码

#pragma GCC optimize(3)
#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6; 
const int N = 12;
double g[N][N];
double ss[N];
int n;
void gauss()
{
    int c, r, t;
    for(c = 1, r = 1; c <= n; c++)
    {
        int t = r;
        for(int i = r+1; i <= n; i++)
            if(fabs(g[i][c]) > fabs(g[t][c])) t = i;
            
        if(fabs(g[t][c]) < eps) continue;
        
        for(int i = c; i <= n+1; i++)
            swap(g[t][i], g[r][i]);
            
        for(int i = n+1; i >= c; i--)
            g[r][i] /= g[r][c];
            
        for(int i = r+1; i <= n; i++)
            for(int j = n+1; j >= c; j--)
                g[i][j] -= g[i][c] * g[r][j];
                
        r++;
    }
    
    for(int i = n; i >= 2; i--)
        for(int j = i-1; j >= 1; j--)
        {
            g[j][n+1] -= g[j][i] * g[i][n+1];
            g[j][i] = 0;
        }
}
int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n+1; i++)
    {
        for(int j = 1; j <= n; j++)
        {
            scanf("%lf", &g[i][j]);
            ss[i] += g[i][j] * g[i][j];
        }
    }
    
    for(int i = 1; i <= n; i++)
    {
        g[i][n+1] = ss[n+1] - ss[i];
        for(int j = 1; j <= n; j++)
        {
            g[i][j] = 2 * (g[n+1][j] - g[i][j]);
        }
    }

    gauss();
    
    for(int i = 1; i <= n; i++) printf("%.3lf ", g[i][n+1]);
}

 


http://www.niftyadmin.cn/n/5682030.html

相关文章

Java---异常及处理

一.异常 1.概念 程序的非正常执行。高级语言都有异常处理机制&#xff08;C&#xff0c;Java&#xff09; 2.一般处理异常的方法 Scanner sc new Scanner(System.in);System.out.println("请输入一个数字:");String s sc.nextLine();if (s.matches("[0-9]&qu…

传知代码-基于图神经网络的知识追踪方法(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 1.论文概述 论文链接提出了一种基于图神经网络的知识追踪方法&#xff0c;称为基于图的知识追踪&#xff08;GKT&#xff09;。将知识结构构建为图&#xff0c;其中节点对应于概念&#xff0c;边对应于它们之间的…

用通义灵码如何快速合理解决遗留代码问题?

本文首先介绍了遗留代码的概念&#xff0c;并对遗留代码进行了分类。针对不同类型的遗留代码&#xff0c;提供了相应的处理策略。此外&#xff0c;本文重点介绍了通义灵码在维护遗留代码过程中能提供哪些支持。 什么是遗留代码 与过时技术相关的代码&#xff1a; 与不再受支持的…

【linux进程】深度理解进程--什么是进程什么是pcb进程创建

目录 前言一&#xff0c;对PCB的理解二&#xff0c;CPU对进程列表的处理三&#xff0c;进程标识符:pid1. 查看系统进程1: ps axj2. 查看系统进程2: /proc 四&#xff0c;系统调用函数:getpid五&#xff0c;父进程和子进程的概念六&#xff0c;创建子进程--fork函数的使用1. 创建…

胤娲科技:AI界的超级充电宝——忆阻器如何让LLM告别电量焦虑

当AI遇上“记忆橡皮擦”&#xff0c;电量不再是问题&#xff01; 嘿&#xff0c;朋友们&#xff0c;你们是否曾经因为手机电量不足而焦虑得像个无头苍蝇&#xff1f;想象一下&#xff0c;如果这种“电量焦虑”也蔓延到了AI界&#xff0c; 特别是那些聪明绝顶但“耗电如喝水”的…

map的键排序方法

1.对map中的key进行正序排序 Map<Integer, String> map Maps.newHashMap();// 原始map LinkedHashMap<Integer, String> sortedMap map.entrySet().stream().sorted(Map.Entry.comparingByKey()) // .collect(Collectors.toMap(Map.Entry::getKey…

【Python】Pythonic Data Structures and Algorithms:深入浅出数据结构与算法的 Python 实现

Pythonic Data Structures and Algorithms 是一个开源项目&#xff0c;汇集了各种经典数据结构和算法的 Python 实现。该项目旨在为开发者提供丰富的学习资源&#xff0c;帮助他们通过 Python 代码理解和掌握数据结构与算法的核心原理和应用。项目中的算法涵盖了排序、搜索、图…

Linux基础知识 + 常用命令

Linux基础 与Windows不同 1.Linux严格区分大小写 2.Linux中所有内容都已文件形式保存&#xff0c;包括硬件 3.Linux不靠拓展名区分文件类型 4.Windows下的程序不能直接在Linux中安装和运行 Linux管理 常用命令 ls 【选项】【文件或目录】 -a 全部 -l 详细 -h 人性化…