Android开发行列式逆矩阵计算器Java板块有些问题如何解决? 80C

学校作业:我想开发一个能求n阶行列式和n阶矩阵逆矩阵的计算器,xml已写是6x6的格子,想首先判断输入几阶方阵反馈n的值,就通过判断第一行到第几个格子有值决定。之后求n阶行列式值用了行列式公式,设了int p[][]的矩阵,可是不会在静态函数中给矩阵赋textview里的值,只学过p[0][0] = (EditText)this.findViewById(R.id.editText1);
此外能不能直接在公用里给p数组赋值然后复制p1来计算,(这样应该就不用在静态里赋值)但公用的我不知道放在哪里放这个头下会报错public class MainActivity extends Activity {。逆矩阵的思路是在右侧补充单位矩阵,将左侧矩阵化为单位矩阵右侧就变成逆矩阵了。可以复制一个同阶数组然后将左侧转化为单位矩阵同时对右侧做相同操作,最后在6x6文本框里输出复制的矩阵。有没有大佬可以帮助我修改一下行列式代码写一下逆矩阵代码让它能实现目标并解释一下修改的问题。谢谢谢谢了真写不动了没系统学过Java就要写这个作业,如果逆矩阵不行只有行列式部分也可吧---xml文件在这应该没有问题----------------------------------------------------Java文件在下侧是半成品但我实在不知道怎么完善了。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:ems="2"
        android:inputType="numberDecimal" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText1"
        android:layout_alignBottom="@+id/editText1"
        android:layout_toRightOf="@+id/editText1"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText2"
        android:layout_alignBottom="@+id/editText2"
        android:layout_toRightOf="@+id/editText2"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editText3"
        android:layout_toRightOf="@+id/editText3"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText4"
        android:layout_alignBottom="@+id/editText4"
        android:layout_toRightOf="@+id/editText4"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText5"
        android:layout_alignBottom="@+id/editText5"
        android:layout_toRightOf="@+id/editText5"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText1"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:layout_toRightOf="@+id/editText1"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText8"
        android:layout_alignBottom="@+id/editText8"
        android:layout_toRightOf="@+id/editText8"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText10"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText9"
        android:layout_alignBottom="@+id/editText9"
        android:layout_toRightOf="@+id/editText9"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText11"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText10"
        android:layout_alignBottom="@+id/editText10"
        android:layout_toLeftOf="@+id/editText6"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText11"
        android:layout_alignBottom="@+id/editText11"
        android:layout_alignLeft="@+id/editText6"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText7"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText14"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText13"
        android:layout_alignBottom="@+id/editText13"
        android:layout_toRightOf="@+id/editText13"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText15"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText14"
        android:layout_alignBottom="@+id/editText14"
        android:layout_toRightOf="@+id/editText14"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText16"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText15"
        android:layout_alignBottom="@+id/editText15"
        android:layout_toRightOf="@+id/editText15"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText17"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText16"
        android:layout_alignBottom="@+id/editText16"
        android:layout_toLeftOf="@+id/editText12"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText18"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText17"
        android:layout_alignBottom="@+id/editText17"
        android:layout_alignLeft="@+id/editText12"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText19"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText13"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText20"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText19"
        android:layout_alignBottom="@+id/editText19"
        android:layout_toRightOf="@+id/editText19"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText21"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText20"
        android:layout_alignBottom="@+id/editText20"
        android:layout_toRightOf="@+id/editText20"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText22"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText21"
        android:layout_alignBottom="@+id/editText21"
        android:layout_toRightOf="@+id/editText21"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText23"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText22"
        android:layout_alignBottom="@+id/editText22"
        android:layout_toLeftOf="@+id/editText18"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText24"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText23"
        android:layout_alignBottom="@+id/editText23"
        android:layout_alignLeft="@+id/editText18"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText25"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText19"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText26"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText25"
        android:layout_alignBottom="@+id/editText25"
        android:layout_toRightOf="@+id/editText25"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText27"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText26"
        android:layout_alignBottom="@+id/editText26"
        android:layout_toRightOf="@+id/editText26"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText28"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText27"
        android:layout_alignBottom="@+id/editText27"
        android:layout_toRightOf="@+id/editText27"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText29"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/editText28"
        android:layout_toLeftOf="@+id/editText24"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText30"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText29"
        android:layout_alignBottom="@+id/editText29"
        android:layout_alignLeft="@+id/editText24"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText31"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText25"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText32"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText31"
        android:layout_alignBottom="@+id/editText31"
        android:layout_alignLeft="@+id/editText26"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText33"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText32"
        android:layout_alignBottom="@+id/editText32"
        android:layout_alignLeft="@+id/editText27"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText34"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText33"
        android:layout_alignBottom="@+id/editText33"
        android:layout_toRightOf="@+id/editText33"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText35"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText34"
        android:layout_alignBottom="@+id/editText34"
        android:layout_toLeftOf="@+id/editText30"
        android:ems="2"
        android:inputType="numberDecimal" />

    <EditText
        android:id="@+id/editText36"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editText35"
        android:layout_alignBottom="@+id/editText35"
        android:layout_alignLeft="@+id/editText30"
        android:ems="2"
        android:inputType="numberDecimal" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_alignLeft="@+id/editText33"
        android:layout_toLeftOf="@+id/editText35"
        android:text="求逆" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_alignLeft="@+id/editText35"
        android:layout_alignRight="@+id/editText36"
        android:text="清空" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button2"
        android:layout_alignLeft="@+id/editText31"
        android:layout_alignRight="@+id/editText36"
        android:layout_alignTop="@+id/textView1"
        android:text="" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignRight="@+id/editText32"
        android:layout_below="@+id/editText31"
        android:layout_marginTop="50dp"
        android:text="计算" 
        android:onClick="GetValue"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignLeft="@+id/editText31"
        android:layout_below="@+id/editText31"
        android:text="TextView" />

</RelativeLayout>

Java文件

package com.example.calculatorstrong;

import com.example.calculator.R;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

        p[0][0] = (EditText)this.findViewById(R.id.editText1);
        //直接这么赋值吗但之前在哪里定义数组p 其余省略
        TextView anwser = (TextView)this.findViewById(R.id.textView2);
    }

    public static double GetValue(int p[][], int n) {
        if (n == 1)  // 如果是一阶行列式,直接返回该元素
            return p[0][0];

        double sum = 0; // 累加求和变量

        for (int j = 0; j < n; j++) {// 遍历最后一行各元素,p[n - 1][j]
            int pt = (n - 1) + j;  // 符号判断指数

            double[][] p1 = new double[n][n];


            for (int row = 0; row < n; row++) {
                for (int col = 0; col < n; col++) {
                    p1[row][col] = p[row][col];  
                }
            }


            for (int index = 0; index < n - 1; index++) {
                for (int index1 = j; index1 < n - 1; index1++) {
                    p1[index][index1] = p1[index][index1 + 1]; 
                }
            }

            // 此过程,截取临时数组 p1 左上角 n-1  阶行列式,提取元素 p[n-1][j] 的余子式
            double[][] temp = new double[n - 1][n - 1];
            for (int row = 0; row < n - 1; row++) {
                for (int col = 0; col < n - 1; col++) {
                    temp[row][col] = p1[row][col];
                }
            }


            sum += p[n - 1][j] * Math.pow(-1, pt) * GetValue(temp, n - 1);
            // System.out.println(p[n - 1][j] + " * " + Math.pow(-1, pt) + " * " + GetValue(p1, n - 1));
            }

            return sum;
        }
}

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

2
用c语言实现任意位数的向量坐标叉乘
1
用C 语言编程,实现矩阵(3行3列)的转置(即行列互换)
1
求计算矩阵数乘,加法和行列式的c++程序
0
矩阵三角形延展占用的行列坐标构图的问题,如何利用C语言的方式求解的?
0
行列式绝对值数字序列的问题求值,运用C语言算法编程的技术
0
求教 通过试教矩形4个顶点,如何创建一个任意行列的矩阵?
2
javaweb 用户可以自由选择出现的行列数(每页要显示多少);
0
python:自写的计算行列式的函数单独运行没有问题,在整个程序中运行出现错误。
0
来大佬帮我看一个,最后的零怎么输出不了
1
VC++游戏编程课本问题:这个地图的行列怎么反着表示呢?
0
MATLAB混合像元分解所用数据格式是什么样?如何生成?
0
行列式的覆盖率的计算算法题,怎么可以利用C程序语言的编写的形式加以实现的
1
如何基于AE C#开发实现栅格数据的重采样
0
矩阵和行列式的一种计算的方式的问题,怎么采用 C 程序的语言代码的编写过程去实现呢?
0
KAMI颜色条的表示问题,行列的计算用C语言的程序设计的形式的写出代码怎么寻找
1
impala行列转换,除了case...when...这种静态转换方法,还有别的转换方法吗?
0
Emgu有实现矩阵拼接的函数吗?
2
用不带参数的构造函数,怎么进行矩阵运算
1
如何将此代码加入窗口?
0
Java语言,实现矩阵的转置的算法怎么实现,怎么按照行列输入矩阵?