逆元java
『壹』 java如何編寫求矩陣的逆矩陣
/**    
 * 求矩陣的逆矩陣 為矩陣右加一個單位矩陣後進行初等行變換,當左邊變成單位矩陣時,右邊就是求得的逆矩陣。 矩陣的初等行變換法則    
 * (1)交換變換:交換兩行 (2)倍法變換:給一行數據乘以一個非0常數 (3)消法變換:把一行所有元素的k倍加到另一行的對應元素上去    
 * 將上述規則中的行換成列同樣有效 只有方陣才可能有逆矩陣!    
 *    
 * @return    
 */    
public Matrix inverseMatrix() {    
    if (!this.isSquareMatrix()) {    
        System.out.println("不是方陣沒有逆矩陣!");    
        return null;    
    }    
    // 先在右邊加上一個單位矩陣。    
    Matrix tempM = this.appendUnitMatrix();    
    // 再進行初等變換,把左邊部分變成單位矩陣    
    double[][] tempData = tempM.getMatrixData();    
    int tempRow = tempData.length;    
    int tempCol = tempData[0].length;    
    // 對角線上數字為0時,用於交換的行號    
    int line = 0;    
    // 對角線上數字的大小    
    double bs = 0;    
    // 一個臨時變數,用於交換數字時做中間結果用    
    double swap = 0;    
    for (int i = 0; i < tempRow; i++) {    
        // 將左邊部分對角線上的數據等於0,與其他行進行交換    
        if (tempData[i][i] == 0) {    
            if (++line >= tempRow) {    
                System.out.println("此矩陣沒有逆矩陣!");    
                return null;    
            }    
     
            for (int j = 0; j < tempCol; j++) {    
                swap = tempData[i][j];    
                tempData[i][j] = tempData[line][j];    
                tempData[line][j] = swap;    
            }    
     
            // 當前行(第i行)與第line行進行交換後,需要重新對第i行進行處理    
            // 因此,需要將行標i減1,因為在for循環中會將i加1。    
            i--;    
            // 繼續第i行處理,此時第i行的數據是原來第line行的數據。    
            continue;    
        }    
     
        // 將左邊部分矩陣對角線上的數據變成1.0    
        if (tempData[i][i] != 1) {    
            bs = tempData[i][i];    
            for (int j = tempCol - 1; j >= 0; j--) {    
                tempData[i][j] /= bs;    
            }    
            // 將左邊部分矩陣變成上對角矩陣,    
            // 所謂上對角矩陣是矩陣的左下角元素全為0    
            for (int iNow = i + 1; iNow < tempRow; iNow++) {    
                for (int j = tempCol - 1; j >= i; j--) {    
                    tempData[iNow][j] -= tempData[i][j] * tempData[iNow][i];    
                }    
            }    
        }    
    }    
     
    // 將左邊部分矩陣從上對角矩陣變成單位矩陣,即將矩陣的右上角元素也變為0    
    for (int i = 0; i < tempRow - 1; i++) {    
        for (int iNow = i; iNow < tempRow - 1; iNow++) {    
            for (int j = tempCol - 1; j >= 0; j--) {    
                tempData[i][j] -= tempData[i][iNow + 1]    
                        * tempData[iNow + 1][j];    
            }    
        }    
    }    
     
    // 右邊部分就是它的逆矩陣    
    Matrix c = null;    
    int cRow = tempRow;    
    int cColumn = tempCol / 2;    
    double[][] cData = new double[cRow][cColumn];    
    // 將右邊部分的值賦給cData    
    for (int i = 0; i < cRow; i++) {    
        for (int j = 0; j < cColumn; j++) {    
            cData[i][j] = tempData[i][cColumn + j];    
        }    
    }    
    // 得到逆矩陣,返回    
    c = new Matrix(cData);    
    return c;    
}
『貳』 如何學習JAVA
如何學習java?
在這里我來為您提供一下Java學習的詳細路線:
這是Java全套系列的學習思維導圖:Java學習思維導圖
高琪老師是我校著名的Java講師,其課程也是受到廣大初學者所喜愛;
如果有的小夥伴想要學Java編程,可以在下方評論領取視頻!有最新的Java課程;
那麼現在來說一下,Java編程初學者應該如何快速入門:
1、按階段規劃,時間留夠,但一定要有互相催促的夥伴,否則會很孤獨也難以堅持,夥伴得挑好了,別把你帶歪了。
2、有了夥伴先學習HTML+CSS,做點網頁出來,讓自己心中對軟體行業充滿成就感,這樣說培養自己的興趣的一種,俗話說興趣是最好的老師,沒有興趣走不遠。
3、然後學習簡單Java語法,寫簡單的流程式控制制語句,簡單數據結構,當邏輯思維和數據結構達到一個3層循環都能搞清楚的水準的時候,馬馬虎虎可以進入下一步了
4、進入Java面向對象的學習,搞清楚類、對象,封裝繼承多態,內部類,對象的概念,然後進入常用集合和泛型以及集合的底層數據結構的學習
5、學習IO流,能夠操作讀取大文件,多線程,Socket編程,學完之後使用JavaSE的基礎做一個五子棋游戲,或者QQ聊天,強化一下自己的知識。
6、進入資料庫學習,先學習Mysql,較為簡單常用,學完資料庫,也可以看看Redis的使用
7、進入JavaWeb課程的學習,以Servlet+Jsp為主,還有tomcat和http基礎,
8、學習JavaScritp+JQuery,結合JavaWeb做一個小的管理系統
9、進入JavaEE的學習,常用框架,主要是SpringMVC和Mybatis,學完之後試著去接觸微服務架構
10、學習linux操作,使用Linux部署tomcat進行環境搭建,跑一個簡單的頁面出來
11、SpringBoot可以進行了解學習,Oracle可以進行了解學習。
最後:最上方詳細的學習線路圖,對比話術更加詳細,希望可以幫助到你們
『叄』 用JAVA編寫一個程序,對數組中每個元素賦值,然後按逆序輸出。
public class ArraySort {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] a = { 12, 2, 45, 23, 9, 88, 33, 23, 22, 5, 4, 4, 5, 1, 9, 7, 2,
				7, 8, 0 };
		ArraySort.bubbleSort(a);
	}
	/**
	 * 冒泡排序。從大到小排序。<br>
	 * 
	 * @param source
	 * @return
	 */
	public static int[] bubbleSort(int[] source) {
		boolean isSort = false; // 是否排序
		for (int i = 1; i < source.length; i++) {
			isSort = false; // 在每次排序前都初始化為false
			for (int j = 0; j < source.length - i; j++) {
				if (source[j] < source[j + 1]) {
					int temp = source[j];
					source[j] = source[j + 1];
					source[j + 1] = temp;
					isSort = true; // 為TRUE表明此次循環(外層循環)有排序。
				}
			}
			if (!isSort)
				break; // 如果沒有排序,說明數據已經排序完畢。
			// 輸出每個子循環排序後的數組中的元素
			printArray(source, i);
		}
		return source;
	}
	
	/**
	 * 循環輸出數組中的元素。
	 * 
	 * @param a
	 * @param idx
	 *            ,第一層循環的index
	 */
	public static void printArray(int[] a,int idx) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + (i != a.length-1?",":""));
		}
		System.out.println("--idx:" + idx);
	}
}
『肆』 java 設計演算法,計算用後綴表示法表示的算術表達式的值。
你好!
後綴表達式也稱逆波蘭表達式,其優點就在於可以方便的用棧實現表達式的值的計算。和你說一下思路吧:
·從頭讀入表達式
·如果遇到數則將其壓入棧
·如果遇到運算符,從棧中彈出棧頂連個數,實行相應運算,將結果壓入棧中
·直到表達式尾,此時棧中應該只有一個元素,即運算結果
·Over
如果對你有幫助,望採納。
『伍』 問一些Java問題,JAVA高手幫幫忙,在線等
1 不會 0
2 2  3
3 3 0 null
4 數組名 下標
5 A
6 D
7 A
8 Object[][] objs = new Object[9][9]
9 數組是有序數據的集合,數組中的每個元素都有相同的數據類型,可用一個統一的數組名和下標來訪問唯一的數組元素。
數組要進行定義和分配空間才能使用。type[] arryName = null;
分配內存空間需要用new arrayName = new type[xxxx];xxx為數組大小
訪問第一個元素:arryName[0]
11 
public class Test {
 
 public static void main(String[] args) {
  int[] sqrt = new int[11];
  
  for(int i = 10; i <= 20; i++){
   sqrt[i] = i * i;
  }
  
 }
}
12
import java.util.Scanner;
public class Test {
 
 public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  
  int[] intAry = new int[10];
  
  for(int i = 0; i < 10; i++){
   System.out.println("Please input number " + i);
   intAry[i] = scanner.nextInt(); 
  }
  
  System.out.println("Reversed array is:");
  
  for(int i = 9; i >= 0; i--){
   System.out.print(intAry[i] + "\t");
  }
 }
}
13這個比較麻煩,有空再寫
『陸』 java求逆演算法的解析,告訴我詳細的演算法,或者是什麼公式要大神幫忙,要快...
是矩陣的逆嗎?
A^(-1)=(Aij)^T/|A|
其中Aij是元素aij的代數餘子式。
『柒』 JAVA的都學習哪些內容
學習java是個不錯的選擇,java在it行業需求的人才每年占上百萬個,並且平均每個月薪資也是在1.8W左右。
如果想達到工作標准可以參考下面的內容:
1.Java SE部分 初級語法,面向對象,異常,IO流,多線程,Java Swing,JDBC,泛型,註解,反射等。
2.資料庫部分,基礎的sql語句,sql語句調優,索引,資料庫引擎,存儲過程,觸發器,事務等。
3. 前端部分, HTML5 CSS3 JS, HTML DOM Jquery BootStrap等。
4. Java EE部分,Tomcat和Nginx伺服器搭建,配置文件,Servlet,JSP,Filter,Listener,http協議,MVC等。
5. 框架部分,每個框架都可以分開學,在去學如何使用SSM 或者SSH框架,如何搭建,如何整合。開發中為什麼會用框架,Rest是啥?Spring為啥經久不衰,底層如何實現等。
6.23種設計模式,掌握常用的,比如單例模式的多種實現,責任鏈模式,工廠模式,裝飾器模式等,了解常用場景。
7. 基礎演算法和數據結構,八大排序演算法,查找演算法。
8. 熟練使用maven等構建工具,git等版本控制工具,熟悉常用linux命令,log4j,bug,junit單元測試,日誌列印工具,Redis等NoSql。
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。

『捌』 JAVA輸入一個數字逆序輸出
你的Java程序錯在用變數a去計算位數,導致a為0,所以後面的結果都為0,應該把a賦給一個臨時變數t,用t去計算位數。
還有你的逆序演算法有問題,不但復雜,而且結果不是逆序。
我給你一個Java語言的逆序演算法,你看看吧.
import java.util.Scanner;
public class nx{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int a=s.nextInt();
while(a>0){
System.out.print(a%10);
a=a/10;
}
}
}

『玖』 JAVA公鑰加密,私鑰解密,該怎麼解決
RSA演算法,選取兩個互質數
如p:6和q:5(最大公約數為1)
求出乘積n=30,歐拉函數值((p - 1) * (q - 1)) eul =20
選出一個和eul互質且小於eul大於1的數,如 e = 19
通過擴展歐幾里得演算法求逆元 此處求出一個逆元 d = 39
逆元就是滿足公式 (e*d) % eul = 1的值(該公式可能有多個解,求出一個就行)
(n,e)組成公鑰,(n,d)組成私鑰
假定明文是一個數字m
計算 m的e次方模n 得到的余數就是密文 em
計算 em的d次方模n 得到的余數就是明文 m
因此可以使用公鑰加密byte數組,使用私鑰解密還原byte數組
byte數組組成了字元串、文件等
最後注意,要加密的明文二進制位數不能超過密鑰的二進制位數
『拾』 java中怎麼數組初始化
一維數組
 
1)  
int[] a;   //聲明,沒有初始化
2)  
int[] a=new int[5];   //初始化為默認值,int型為0 
 
3)  
int[] a={1,2,3,4,5};  
//初始化為給定值
4)  
int[] a=new int[]{1,2,3,4,5};   //同(3) 
 
int[] a=new int[5]{1,2,3,4,5};  
//錯誤,如果提供了數組初始化操作,則不能定義維表達式
5)  
int[] a;  
a=new int[5];    //正確,同(2)一樣
 
int[] a;  
 
a={1,2,3,4,5};   //錯誤數組常量只能在初始化操作中使用,如(3)
6)   int a[]; 
 a[0]=1;  
//錯誤,因為數組沒有初始化,不能賦值a[1]=2;  二維數組
  
1)  
int[][] a; 
//聲明,沒有初始化
2)   int[][] a=new int[2][3];   
//初始化為默認值,int型為0 
 
3)  
int[][] a={{1,2},{2,3},{3,4}};  
//初始化為給定值
int[][] a={{1,2},{2,3},{3,4,5}};  
//沒有錯,數組空間不是連續分配的,所以不要求每一維的大小相同
4)  
int[][] a=new int[2][]; 
a[0]=new int[3]; 
//a[0]其實就是一個數組a[1]=new int[4]; 
//每一維的大小可以不一樣
; 
 
5)  
int[][] a=new
int[][]{{1,2},{2,3},{3,4,5}};  
//同(3)
