最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用加邊法計算行列式的值

 更新時間:2015年08月13日 09:24:43   作者:北風其涼  
這篇文章主要介紹了C#使用加邊法計算行列式的值,實例分析了C#加邊法計算行列式的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#使用加邊法計算行列式的值。分享給大家供大家參考。具體如下:

1.函數(shù)

行列式的值等于其第一行各元素乘以各自對應(yīng)的代數(shù)余子式之積的和。
(注:本代碼僅提供一種思路,并不代表最優(yōu)解)

/// <summary>
/// 遞歸計算行列式的值
/// </summary>
/// <param name="matrix">矩陣</param>
/// <returns></returns>
public static double Determinant(double[][] matrix)
{
  //二階及以下行列式直接計算
  if (matrix.Length == 0) return 0;
  else if (matrix.Length == 1) return matrix[0][0];
  else if (matrix.Length == 2)
  {
    return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0];
  }
  //對第一行使用“加邊法”遞歸計算行列式的值
  double dSum = 0, dSign = 1;
  for (int i = 0; i < matrix.Length; i++)
  {
    double[][] matrixTemp = new double[matrix.Length - 1][];
    for (int count = 0; count < matrix.Length - 1; count++)
    {
      matrixTemp[count] = new double[matrix.Length - 1];
    }
    for (int j = 0; j < matrixTemp.Length; j++)
    {
      for (int k = 0; k < matrixTemp.Length; k++)
      {
        matrixTemp[j][k] = matrix[j + 1][k >= i ? k + 1 : k];
      }
    }
    dSum += (matrix[0][i] * dSign * Determinant(matrixTemp));
    dSign = dSign * -1;
  }
  return dSum;
}

2.Main函數(shù)調(diào)用

static void Main(string[] args)
{
  //二階行列式 -2
  double[][] matrix1 = new double[][]
  {
    new double[] { 1, 2 },
    new double[] { 3, 4 }
  };
  Console.WriteLine(Determinant(matrix1));
  //三階行列式 -4
  double[][] matrix2 = new double[][]
  {
    new double[] { 2, 0, 1 },
    new double[] { 1, -4, -1 },
    new double[] { -1, 8, 3 }
  };
  Console.WriteLine(Determinant(matrix2));
  //四階行列式 -21
  double[][] matrix3 = new double[][]
  {
    new double[] { 1, 2, 0, 1 },
    new double[] { 1, 3, 5, 0 },
    new double[] { 0, 1, 5, 6 },
    new double[] { 1, 2, 3, 4 }
  };
  Console.WriteLine(Determinant(matrix3));
  Console.ReadLine();
}

3.運行結(jié)果

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

相關(guān)文章

  • C#中按指定質(zhì)量保存圖片的實例代碼

    C#中按指定質(zhì)量保存圖片的實例代碼

    這篇文章主要介紹了C#中按指定質(zhì)量保存圖片的實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • C#代碼實現(xiàn)PDF文檔操作類

    C#代碼實現(xiàn)PDF文檔操作類

    本篇文章給大家介紹使用pdf文檔操作C#代碼,本文代碼非常簡單,代碼附有注釋,需要注意的是:需要添加itextsharp.dll引用才可以正常通過編譯,感興趣的朋友可以參考下
    2015-10-10
  • C#使用表達式樹(LambdaExpression)動態(tài)更新類的屬性值(示例代碼)

    C#使用表達式樹(LambdaExpression)動態(tài)更新類的屬性值(示例代碼)

    這篇文章主要介紹了C#使用表達式樹(LambdaExpression)動態(tài)更新類的屬性值,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C# 嵌入dll 的方法

    C# 嵌入dll 的方法

    這篇文章主要介紹了C# 嵌入dll 的方法,本文圖文并茂給大家及時的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • C# 遞歸算法詳解

    C# 遞歸算法詳解

    什么是遞歸函數(shù)/方法?任何一個方法既可以調(diào)用其他方法也可以調(diào)用自己,而當這個方法調(diào)用自己時,我們就叫它遞歸函數(shù)或遞歸算法,接下來詳細介紹需要了解的朋友可以參考下
    2021-11-11
  • C# IsDefined的問題

    C# IsDefined的問題

    這篇文章主要介紹了C# IsDefined的問題,通俗易懂,需要的朋友可以參考下。
    2016-06-06
  • C#實現(xiàn)從位圖到布隆過濾器的方法

    C#實現(xiàn)從位圖到布隆過濾器的方法

    布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地判斷出數(shù)據(jù)是否存在。常用于允許一定誤判率的數(shù)據(jù)過濾及防止緩存擊穿及等場景,本文將以 C# 語言來實現(xiàn)一個簡單的布隆過濾器,為簡化說明,設(shè)計得很簡單,需要的朋友可以參考下
    2022-06-06
  • C#設(shè)計模式之觀察者模式實例講解

    C#設(shè)計模式之觀察者模式實例講解

    這篇文章主要介紹了C#設(shè)計模式之觀察者模式實例講解,本文詳細講解了觀察者模式的定義、優(yōu)缺點、代碼實例等,需要的朋友可以參考下
    2014-10-10
  • C#繪制鼠標指針的示例代碼

    C#繪制鼠標指針的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)將鼠標的指針樣式給繪制成圖片,顯示或者保存下來,文中的示例代碼講解詳細,需要的可以參考一下
    2024-01-01
  • C#使用SendMessage實現(xiàn)進程間通信的方法

    C#使用SendMessage實現(xiàn)進程間通信的方法

    這篇文章主要介紹了C#使用SendMessage實現(xiàn)進程間通信的方法,涉及C#中SendMessage方法的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04

最新評論

东明县| 定州市| 精河县| 勐海县| 祁连县| 策勒县| 唐河县| 高清| 龙山县| 皋兰县| 文山县| 南投市| 漳平市| 休宁县| 锡林浩特市| 偃师市| 大连市| 岱山县| 彭山县| 延长县| 兴城市| 泗洪县| 汾阳市| 乾安县| 南乐县| 葵青区| 沙洋县| 都安| 马公市| 神农架林区| 保德县| 乳源| 郸城县| 固安县| 德惠市| 乳山市| 崇仁县| 潮州市| 罗定市| 崇左市| 静海县|