问题描述
  //据说很多人的题目会有一大堆废话,本傻×就不在这里废话了。
  给定一个N×N的矩阵A,求|A|。
输入格式
  第一行一个正整数N。
  接下来N行,每行N个整数,第i行第j个数字表示A[i][j]。
输出格式
  一行,输出|A|。
样例输入
2
1 2
3 4
样例输出
-2
数据规模和约定
  0<N≤6
  -10≤A[i][j]≤10
 
 
 
很简单的一道线性代数题目
用简单化的拉普拉斯定理就行了
 
 import java.util.*;

 public class Main {

     static int getit(int[][] a, int n) {
if(n == 1) return a[0][0];
if(n == 2) return a[0][0] * a[1][1] - a[0][1] * a[1][0];
int[][] shuzu = new int[n-1][n-1];
int ans = 0;
for(int i = 0; i < n; ++i) {        //每次将a[0][i]的行列去掉,赋值给一个新的数组
for(int x = 0; x < n-1; ++x) {
for(int y = 0; y < i; ++y)
shuzu[x][y] = a[x+1][y];
for(int y = i; y < n-1; ++y)
shuzu[x][y] = a[x+1][y+1]; } ans += a[0][i] * Math.pow(-1, i) * getit(shuzu, n-1); //然后进行递归
}
return ans;
} public static void main(String args[]) { Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] shu = new int[n][n];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
shu[i][j] = sc.nextInt();
System.out.print(getit(shu, n)); }
}

同时也激发起我对线性代数的求生欲 0.0

ADV-292 计算行列式 java的更多相关文章

  1. Java实现 蓝桥杯 算法提高 计算行列式

    试题 算法提高 计算行列式 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 //据说很多人的题目会有一大堆废话,本傻×就不在这里废话了. 给定一个N×N的矩阵A,求|A|. 输入格式 ...

  2. 计算价格, java中浮点数精度丢失的解决方案

    计算价格, java中浮点数精度丢失的解决方案

  3. 降阶法计算行列式方法有个地方有Bug(原文也已更正,此为更正后部分)

    今天用此函数做方程求解时发现有误,特此更正: /// <summary> /// 降阶法计算行列式 /// </summary> /// <param name=&quo ...

  4. 用php计算行列式

    因为有课程设计要计算多元一次方程组,所以想编个程序实现,多元一次方程组的计算最系统的方法就是利用克拉默法则求解方程组,所以只需要编写一个类或者方法求出多元一次方程组系数行列式的值和和其他几个行列式,如 ...

  5. 计算日期时间 自动加1天 PHP计算闰年 java与PHP时间戳对比区别

    昨天写一个同步数据库的模块  从一个数据库同步到另外一个数据库,因为数据较多,不可能一次性全部搬迁过去,所以就按照每天搬迁! 写了一个 模块,点击加1,只要点击一次,自动从A数据库取出1天的数据, 并 ...

  6. 可达用户投资额的计算(Java)

    有话要说: 前阵子遇到了一个计算可达用户投资额的问题,觉得非常有趣,故把它记录下来. 问题描述: 某产品可被投资,注册后才可以投资,其注册可以被邀请(并不是每个人都是被邀请的).邀请人可以邀请多个人注 ...

  7. 用 C# 计算 与 java 一致的unix时间戳 (长时间整形 如:1476956079961)

    背景: 调用java提供接口,需要长时间整形作为验证. 预备知识: 1. java 的 System.currentTimeMillis() 计算的长整型,是从1970年1月1日开始,截止当前的毫秒数 ...

  8. 算法笔记_155:算法提高 概率计算(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率. 输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔. 输出格式 输出一行 ...

  9. java计算时间差 Java问题通用解决代码

    java实现计算时间差     正式版:       /**        * 计算时间差,求出两者相隔的时间        *        * @param nowDate        *    ...

随机推荐

  1. python中for循环中的循环变量

    废话不多说,代码伺候: for i in range(3): print("hello") print(i) 运行结果如下: 从上面的例子可以看出,for循环里面的循环变量i作用域 ...

  2. 【Android】数据存储和访问

    一.SharedPreferences 2.SQLite

  3. arc066E - Addition and Subtraction Hard

    题目链接 题目大意 给定一个只含加减和数字的表达式,在其中添加括号,使其值最大. 解题思路 显然,只有减号后面的括号会使其中表达式的值取反. 然后只有已经有左括号时才能加入右括号. 所以用\(f_0\ ...

  4. PyQt5窗口关闭问题---关闭主程序的窗口但子窗口仍显示的问题

    使用PyQt5做界面开发时,如果做一个较复杂的程序时往往会涉及到在主程序中打开某个菜单弹出子窗口的问题,如果在打开很多子窗口的时候想一键退出关闭主窗口,但其它的子窗口仍然正常显示着,那么如何在代码中进 ...

  5. python中安装下载超时,下载不了安装包

    python3 -m pip install scapy 执行上面命令报错,下载超时,下载不了安装包 Collecting scapy WARNING: Retrying (Retry(total=4 ...

  6. 吴裕雄--天生自然Numpy库学习笔记:NumPy 统计函数

    NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. numpy.amin() 用于计算数组中的元素沿指定轴的最小值. numpy.amax() 用于计算数组中的 ...

  7. 使用类进行面向对象编程 Class 实例化 和 ES5实例化 对比,继承

    ES5 写法 function Book(title, pages, isbn) { this.title = title; this.pages = pages; this.isbn = isbn; ...

  8. Java语言特性、加载与执行

    [开源.免费.纯面向对象.跨平台] 简单性: 相对而言,例如,Java是不支持多继承的,C++是支持多继承的,多继承比较复杂:C++ 有指针,Java屏蔽了指针的概念.所以相对来说Java是简单的. ...

  9. nyoj 11

    水题... #include <stdio.h> #include <algorithm> #include <iostream> int main() { int ...

  10. git分支在项目中管理

    实际项目中如何使用Git做分支管理 2018年06月24日 18:08:24 ShuSheng007 阅读数:9241   版权声明: https://blog.csdn.net/ShuSheng00 ...