前天我看线代书,看到行列式,发现是个递归的式子,恰巧又正在学java,产生写程序实现的想法。写了两个小时,觉得实现了,写了个行列式放进去测试,我放的是

这个行列式,经过程序计算后发现结果是0。我以为我错了,于是我就去找错,发现返回结果的变量好像应该用静态变量,否则可能面临每次调用都初始化为0的情况,我以为这是结果是0的原因 。于是,我把结果变量改为静态变量,得到的结果不是0了,甚是高兴。于是用计算器验证我放进去的1-9的那个行列式的结果,发现竟然是0。 此时,我没有意识到我原本写的是对的,以为我这次是函数的结构或者其他啥的问题。几经折腾,发现改完之后只能计算二阶行列式能得到正确结果,三阶就不正确。再几经思考,发现在递归调用过程中,把结果储存到静态变量里时会进行重复的加,递归内加了一次,递归完成后又加了一次。遂改回原来的,得正确结果 。全程历时四小时有余,两小时写完代码,再两小时把代码改错且难受的思考再把代码改回原样。

从这个故事我学会一件事,0不一定是错误结果

下面是我写的代码。

public class recursive {

public static void main(String[] args) {

// 定义一个数组

int a[][] = {{1,2},{2,1}};

aij b = new aij();

System.out.println(b.det(a));

}

}

class aij {

// A函数可用于求余子阵

int[][] A(int[][] a, int row, int column) {

int[][] ans = new int[a.length - 1][a.length - 1];// ans用于储存返回的最终结果

int[] temp = new int[(a.length - 1) * (a.length - 1)];// 临时一维数组temp用于按顺序储存剔除相应行和列元素后的数组

int k = 0;

// 剔除行和列并按顺序储存到temp内

for (int i = 0; i < a.length; i++) {

for (int j = 0; j < a[i].length; j++) {

if (i == row - 1) {

continue;

} else if (j == column - 1) {

continue;

}

temp[k++] = a[i][j];

}

}

// 按顺序从temp中读取数据并储存到ans内

k = 0;

for (int i = 0; i < ans.length; i++) {

for (int j = 0; j < ans[i].length; j++) {

ans[i][j] = temp[k++];

}

}

return ans;

}

// det用于求行列式

int det(int[][] a) {

if (a.length == 1) {

return a[0][0];

} else {

int ans=0;

for (int i = 0; i < a.length; i++) {

ans+=a[i][0]*(int)Math.pow(-1, i)*det(A(a,i+1,1));

}

return ans;

}

}

}

行列式计算(C&num;)

最近几天学习高等代数老师说要写个程序算行列式的结果,闲来无事就简单写了一下. 不多说了,上代码 using System; using System.Collections.Generic; usin ...

【Java】Float计算不准确

大家可能都遇到过,float在计算某些值时,会有不准确的情况. 比如如下情况: > 计算不准确 package com.nicchagil.study.java.demo.No10float计算 ...

n阶行列式计算----c语言实现(完结)

花了半天时间,写了这个n阶行列式计算的程序,应该算是比较优美吧,有很多地方多次做了优化,程序占用内存不是很大,要是说小吧,也不合适,因为里边有一个递归,而且递归的深度还比较深.时间复杂度具体没有细看, ...

Java闰年的计算,Calendar的用法

Java闰年的计算,Calendar的用法 代码如下: package com.aaa.zuoye; import java.text.ParseException; import java.util ...

Java基础-时间复杂度计算方式

Java基础-时间复杂度计算方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境 ...

MyMathLib系列&lpar;行列式计算&rpar;

靠人不如靠己,准备做自己得MathLib,在学校的时候,就想过把数学数理的东西都计算机化.但一直没有时间去做这件事情,如今认为空余 时间比較闲,就做做这件事情,先从线性代数開始,毕竟这里面的非常多算法 ...

MyMathLib系列&lpar;行列式计算2&rpar;

/// /// 行列式计算,本程序属于MyMathLib的一部分.欢迎使用,參考,提意见. /// 有时间用函数语言改写,做自己得MathLib,里面的算法经过验证,但 ...

Java Convention 公约数计算

Java Convention 公约数计算 /** * *

*

Copyright 1994-2018 JasonInterna ...

Java练习 SDUT-1586&lowbar;计算组合数

计算组合数 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 计算组合数.C(n,m),表示从n个数中选择m个的组合数. ...

随机推荐

走进缓存的世界(三) - Memcache

系列文章 走进缓存的世界(一) - 开篇 走进缓存的世界(二) - 缓存设计 走进缓存的世界(三) - Memcache 简介 Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用 ...

Mysql 学习笔记2

(1)MySQL查看表占用空间大小 //先进去MySQL自带管理库:information_schema //自己的数据库:dbwww58com_kuchecarlib //自己的表:t_carmod ...

C&num; ADO&period;NET 连接Sybase 数据库

using Sybase.Data.AseClient;//反编译修改后的DLL public class SybaseHelper { public AseConnection con; publi ...

C&num; 数据回滚

public int GetExecteQuery(string strAddSql, string strUpdateSql, string strDelSql) { SqlConnection c ...

java OJ题目判断输入结束(与C语言的EOF结束等价)

/* * java 作Oj题目是会有输入若干数据的情况,不好判断输入结束符, * 类似于C语言中的EOF符号 * 在这里提供了一种方法 * */ import java.util.Iterator; ...

解决sql和beans中名字不一致问题

第二图使用别名 tid为sql中的名字,id为beans中的名字,推荐此方式

&lbrack;Swift&rsqb;LeetCode933&period; 最近的请求次数 &vert; Number of Recent Calls

Write a class RecentCounter to count recent requests. It has only one method: ping(int t), where t r ...

如何重置mate的面板到初始化时的默认设置?

在你的任何终端中敲入如下命令: gsettings reset-recursively org.mate.panel

20155332 mybash的实现

mybash 的实现 码云链接 https://gitee.com/bestiisjava2017/laura5332/blob/master/%E4%BF%A1%E6%81%AF%E5%AE%89% ...

java编程实现行列式计算应用_Java实现行列式计算相关推荐

  1. java编程算法出现在窗口_Java实现轨迹压缩算法开放窗口代码编程实例分享

    Java实现轨迹压缩算法开放窗口代码编程实例分享,今天要给各位朋友分享的这篇文章主要介绍了Java编程实现轨迹压缩算法开放窗口实例代码,具有一定的参考价值,有兴趣的朋友来看看吧. 轨迹压缩算法 场景描 ...

  2. Java编程入门与应用 P124——例5-4(计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值)

    Java编程入门与应用 P124--例5-4 计算90度的正弦值.0度的余弦值.1的反正切值.120度的弧度值 因为参数里都是double值,需要以弧度代替角度来实现 /*** Java编程入门与应用 ...

  3. java编程用什么软件最好_java语言用什么编程软件

    现在软件流行java下的j2ee开发和.net开发两大块其他简单说明:foxpro过时的数据库编程软件有极少数企业使用.vc++适合网络编程较难很多外挂出自于此.vb一种. . JAVA就业前景分析: ...

  4. java编程时 尽量少用_Java编程语言基础知识的要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

  5. java语言计算圆周率_Java语言简单计算圆周率完整示例

    本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...

  6. java编程应该要的英语_java编程中常用英语单词

    JAVA 省略语与名词解释 -------------------------------- J2EETM----JavaTM 2PlatformEnterpriseEdition : J2EE(JA ...

  7. java编程实现学生成绩管理系统_java 用文件实现的学生成绩管理系统

    [实例简介] yu华南理工大学网络学院2014秋季 "计算机操作系统"课程设计大作业 一.题目: 用文件实现的学生成绩管理系统 二.目的 学生通过本次实验编程实现一个班级学生成绩的 ...

  8. java计算年龄_java根据出生日期计算出年龄

    java根据出生日期计算出年龄 发布时间:2018-05-18 16:07, 浏览次数:3155 , 标签: java日期年龄计算 String dataOfBirth = "1991-10 ...

  9. java编程成绩评分分等级_java编写成绩等级,最高分为best

    题目:编写一个程序,读入学生成绩,获取最高分为best,然后其他等级值: 分数>=best-10,等级为A 分数>=best-20,等级为B 分数>=best-30,等级为C 分数& ...

  10. java根据生日精确计算年龄_java根据出生日期计算年龄(精确到天)

    @根据出生日期计算年龄(精确到天) 代码块 public class CountAgeUtil { public static String countAge(String from){ String ...

最新文章

  1. 资源 | 做一款炫酷的机器人需要哪些学习资源(机器人资源Awesome系列)
  2. Mp3写入专辑图片(Kotlin)
  3. DNN网站出现服务不可用
  4. JavaScript对象继续总结
  5. 调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇
  6. Keil中的Code,RO,RW,ZI分别表示什么?
  7. PetShop4.0--转载
  8. 怎么做蒙特卡洛计算npv_PowerBI非标准日历下的同比环比计算,你知道怎么做吗?...
  9. 小数分数转换c语言,这是把小数转换成分数的程序,可是输入0.6666无限循环
  10. Qt与java web通过数据库实现数据展示同步
  11. 什么是散列表(哈希表)?
  12. 分享几个你可能不知道的交互式Git 命令
  13. [转载] 全本张广泰——第八回 广泰欲悬梁 老侠三救徒
  14. 吴恩达深度学习1.3练习_Neural Networks and Deep Learning
  15. 维特比算法(Viterbi Algorithm)
  16. 数据库服务器编码,数据库编码,数据库表编码,数据库表字段编码
  17. Android项目实战(三十四):蓝牙4.0 BLE 多设备连接
  18. 【图像去噪】基于matlab GUI均值+中值+高通低通+巴特沃斯+PCA+小波+维纳滤波图像去噪【含Matlab源码 1705期】
  19. python输出星号等腰三角形_Python 打印矩形、直角三角形、等腰三角形、菱形
  20. nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)

热门文章

  1. PLSQL代码调试Oracle dbms_utility返回错误
  2. 农村物流配送管理如何走出困境?这里有方案
  3. 【无标题】PHP小皮中出现拒绝访问(使用密码:YES)
  4. 计算机属性资源管理器已停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作如何解决...
  5. 脑电信号情绪识别研究综述
  6. OTA升级的三种方式
  7. 【数据库系统原理与应用/数据库系统概论】 期末复习手册
  8. CyanogenMod源码编译
  9. 关于Iphone 4 如何用itunes备份短信等设置
  10. IIS PHP MYSQL出现问题_iis php mysql