一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java實現(xiàn)的n*n矩陣求值及求逆矩陣算法示例

java實現(xiàn)的n*n矩陣求值及求逆矩陣算法示例

2021-01-14 15:44hpuzsk Java教程

這篇文章主要介紹了java實現(xiàn)的n*n矩陣求值及求逆矩陣算法,結(jié)合具體實例形式分析了java基于數(shù)組的矩陣定義、遍歷、運算等相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了java實現(xiàn)的n*n矩陣求值及求逆矩陣算法。分享給大家供大家參考,具體如下:

先來看看運行結(jié)果:

java實現(xiàn)的n*n矩陣求值及求逆矩陣算法示例

java版的寫出來了,用的跟c語言相同的算法,然后看看能不能以后加個框做成程序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
import java.math.*;
import java.util.*;
import java.text.*;
public class matrix {
  static int map1[][]=new int [110][110];
  static int just[][]=new int [110][110];
  public static void printf(int n,int map[][])
  {
    int i,j;
    for(i=1;i<=n;i++ )
    {
      for(j=1;j<n;j++)
        system.out.print(map[i][j]+" ");
      system.out.println(map[i][j]);
    }
  }
  public static void get(int numi,int numj,int map[][],int n)
  {
    int i,j,k,l;
    for(i=0;i<n+10;i++)
      for(j=0;j<n+10;j++)
        just[i][j]=1;
    for(i=1;i<=n-1;i++)//求余子式矩陣
      for(j=1;j<=n-1;j++)
      {
        if(i>=numi&&j<numj)
        just[i][j]=map[i+1][j];
        else if(i>=numi&&j>=numj)
        just[i][j]=map[i+1][j+1];
        else if(i<numi&&j>=numj)
        just[i][j]=map[i][j+1];
        else if(i<numi&&j<numj)
        just[i][j]=map[i][j];
      }
  }
  //static int map[][]=new int [110][110];
  public static int getans(int nn)
  {
    int map[][]=new int [110][110];
    for(int i=1;i<=nn;i++)
    for(int j=1;j<=nn;j++)
    map[i][j]=just[i][j];
    if(nn==2)
    return map[1][1]*map[2][2]-map[1][2]*map[2][1];
    else if(nn==1)
    return map[1][1];
    else
    {
      int cnb=0;
      for(int i=1;i<=nn;i++)
      {
        get(1,i,map,nn);//得到當前余子式 just
      // printf("pay attention!\n");
        //print(map,nn);
        //print(just,nn-1);
        if(i%2==1)
        cnb+=map[1][i]*getans(nn-1);
        else
        cnb-=map[1][i]*getans(nn-1);
      }
      return cnb;
    }
  }
  public static int gcd(int m,int n)
  {
//   if(m<n)
//   matrix.gcd(n,m);
//   if(n==0)
//   return m;
//
//   else
//   return matrix.gcd(n,m%n);
    int mm=m;
    int nn=n;
    if(mm<nn)
    {
      int c=mm;
      mm=nn;
      nn=c;
    }
    int w=1;
    while(w!=0)
    {
      w=mm%nn;
      mm=nn;
      nn=w;
    }
    return mm;
  }
  public static void ans(int n,int m)
  {
    if(n*m<0)
    {
      system.out.print("-");
      ans(math.abs(n),math.abs(m));
      return ;
    }
    if(m==1)
    system.out.print(n+"\t");
    else if(n%m==0)
      system.out.print(n/m+"\t");
    else
      system.out.print((n/matrix.gcd(m, n))+"/"+(m/matrix.gcd(m, n))+"\t");
  }
  public static void main(string[] args) {
    // todo 自動生成的方法存根
    scanner cin=new scanner(system.in);
    int i,j,k,l,m,p;
    while(true)
    {
      int n=cin.nextint();
      int ans=0;
      for(i=0;i<n+10;i++)
        for(j=0;j<n+10;j++)
          map1[i][j]=1;
      for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
          map1[i][j]=cin.nextint();
          just[i][j]=map1[i][j];
        }
      int ans1=matrix.getans(n);
      system.out.println("矩陣的值為:");
      system.out.println(ans1);
      int map2[][]=new int [110][110];
      for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
          map2[i][j]=map1[j][i];
          just[i][j]=map2[i][j];
        }
      system.out.println("轉(zhuǎn)置矩陣為:");
      matrix.printf(n, map2);
      int help2=matrix.getans(n);
      system.out.println(help2);
      if(help2==0)
      {
        system.out.println("no inverse matrix");
        continue;
      }
      system.out.println("逆矩陣為:");
      for(i=1;i<=n;i++)
      {
        for(j=1;j<=n;j++)
        {
          matrix.get(i, j, map2, n);
          //boolean b=((i+j)%2==0);
          if((i+j)%2==0)
          matrix.ans(matrix.getans(n-1), help2);
          else
          matrix.ans(matrix.getans(n-1)*-1, help2);
        }
        system.out.println();
      }
      system.out.println();
    }
  }
}

希望本文所述對大家java程序設(shè)計有所幫助。

原文鏈接:http://blog.csdn.net/z8110/article/details/51691577

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 2020年最新国产精品视频免费 | www.大逼色| 电车痴汉(han) | 石原莉奈adn093店长未婚妻 | 国产高清在线精品一区二区三区 | 二次元美女脱裤子让男人桶爽 | 久久永久免费视频 | 小早川怜子亚洲综合中文字幕 | 好大好爽好舒服视频 | 好姑娘在线完整版视频 | 久久99re热在线播放7 | 亚洲成年网 | 猫咪maomiav永久网址 | 99久久精品国产免费 | 青青青国产精品国产精品美女 | 翁息肉小说老扒 | 丝瓜视频黄瓜视频 | www毛片| 18性夜影院午夜寂寞影院免费 | 亚洲国产99在线精品一区二区 | 超鹏97国语 | 99久久免费看精品国产一区 | 亚洲第一男人网站 | 免费标准高清看机机桶机机 | 免费看隐私男生网站 | 国产免费一区二区 | 青草视频网站在线观看 | 2019理论韩国理论中文 | futa文| 亚洲国产精品热久久 | 草久社区 | 免费观看欧美一级高清 | 毛片免费全部免费观看 | 冰漪丰满大乳人体图片欣赏 | 日本高清在线看免费观看 | 久久精品熟女亚洲AV国产 | 干处女| 青草青草视频2免费观看 | 亚欧日韩| 日本 在线观看 | 国产一级在线观看 |