??Austin 2019-11-02 21:03 采纳率: 0%
浏览 550
已结题

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

学校作业:我想开发一个能求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;
        }
}

  • 写回答

2条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘