一起用C#写个行列式计算器
刚刚开始 上大学的我,对于线性代数不是很理解。总感觉是那么回事,又不是那么回事。所以果断把书里的定义用程序解一遍。
废话不多说,直接上行列式类的代码:
class HLS{private List<int[]> D=new List<int[]>(); //存储行列式List.Count为列,行为List存储的元素public void Create() //给行列式复制 当然这里可以通过输入方式 我就不演示了{D.Clear();D.Add(new int[]{2,1,-5});D.Add(new int[]{1,-3,0});D.Add(new int[]{0,2,-3});} public int Get(int index_x,int index_y) //获取第x-1行,第y-1列的元素{return D[index_x-1][index_y-1];}public int GetCount() //获取行列式行(列)数{return D.Count;}public void Display(double Dvalue) //控制台格式化显示行列式{for(int i=0;i<D.Count;i++){Console.Write("|");for(int j=0;j<D[i].Length;j++){Console.Write(j==D[i].Length-1?(D[i][j]).ToString():(D[i][j]+",").ToString());}Console.Write("|"); if(D.Count%2==0){if(i==D.Count/2-1){Console.Write("|");for(int count=1;count<=D[0].Length;count++){Console.Write(count==D[0].Length-1?" ":" ,");}Console.Write("|="+Dvalue);}}else if(i==(D.Count-1)/2){Console.Write("="+Dvalue); }Console.WriteLine(); }}}
行列式的数据结构就这样,计算行列式:
static double GetHls(HLS D) //传入一个行列式数据,计算并返回其值{int[] arr=CollSet(D.GetCount());List<int[]> list=new List<int[]>();FullArray(list,arr,0);double sum=0;for(int cn=1;cn<=list.Count;cn++){double xg=1;for(int i=1;i<=D.GetCount();i++){xg*=D.Get(i,list[cn-1][i-1]); }sum+=Math.Pow(-1,N(list[cn-1]))*xg;}return sum;}static int[] CollSet(int num) //生成连续的数字排列{int[] result=new int[num];for(int i=0;i<num;i++)result[i]=i+1;return result;}static int N(int[] arr) //逆序数计算{int N=0;for(int i=1;i<arr.Length;i++)for(int j=0;j<i;j++)if(arr[j]>arr[i])N++;return N;}static void FullArray(List<int[]> list,int[] arr,int k) //全排列生成{if(k==arr.Length){int[] cp_arr=new int[arr.Length];for(int i=0;i<arr.Length;i++)cp_arr[i]=arr[i];list.Add(cp_arr);}else{for(int i=k;i<arr.Length;i++){{int t=arr[k];arr[k]=arr[i];arr[i]=t;}FullArray(list,arr,k+1);{int t=arr[k];arr[k]=arr[i];arr[i]=t;}}}}
然后再Main方法调用测试:
using System;
using System.Linq;
using System.Collections.Generic;
namespace YaxuanMath
{class Math{ static void Main(string[] args){HLS D=new HLS(); //创建行列式类D.Create(); //“输入”行列式数据(可自行定义数据输入方式) D.Display(GetHls(D)); //控制台格式化显示行列式及其值Console.ReadKey();}
}
一起用C#写个行列式计算器相关推荐
- [C语言]行列式计算器
最近在学习线性代数,但是由于粗心,总是导致算错,于是我突发奇想,想着用c语言写一个行列式计算器,在我懒经犯了的时候偷一下懒. 由于我也是c语言初学者,所以做的不太好,而且我认为我写的代码有些过于啰嗦了 ...
- linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...
- linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...
- python银行利息问题_python入门教程NO.8 用python写个存款利息计算器
python入门教程 python入门教程NO.8 用python写个存款利息计算器 本文涉及的python基础语法为def函数,return,函数的各参数示例,匿名函数等 函数初识 函数是一段组织好 ...
- 用Java写一个年薪计算器,助你简单完成大量税前税后总薪计算量
每个有规模一点的公司都会有会计部门这是毋庸置疑的,但是会计的工作真的如大部分人想的那么简单,只是在每个月的最后几天才忙得不可开交吗 ? 答案当然不是,不然这个岗位早就人满为患了. 目前就我了解到的会计 ...
- 行列式怎样用计算机算,行列式计算器怎么样?行列式计算器如何使用?
对于这款软件,相信广大的用户对它都是不会感觉到陌生的.行列式计算器实际上是用来计算N阶行列的轻巧软件,它的最大优势就在于使用简单,体积娇小,不会占用用户过多的空间,用户只需要在该款软件当中输入行列式, ...
- 使用 tkinter库制作行列式计算器
计算引用numpy库 界面使用tkinter库 新手练习题:案例有少量bug,未解决 import tkinter as tk #import numpy as np#减少引入函数量 from num ...
- python存款模块_python入门教程NO.8用python写个存款利息计算器
python 入门教程 NO.8 用 python 写个存款利息计算器 本文涉及的 python 基础语法为 def 函数, return ,函数的各参数示例,匿名函数等 函数初识 函数是一段组织好的 ...
- 用微信开发者小程序写一个加法计算器小程序
文章目录 前言 一.calculator.wxml代码 二.calculator.js代码 结果 前言 提示:用软件微信开发者小程序写一个加法计算器小程序 一.calculator.wxml代码 &l ...
最新文章
- php header 重定向 url不变_PHP实现页面跳转功能
- 分布式消息队列 — Overview
- Spring利用JDBCTemplate实现批量插入和返回id
- C语言基础排序算法-选择排序
- net4.0 兼容2.0的方法
- Toping Kagglers:Bestfitting,目前世界排名第一
- ansible配置zabbix自动化安装和配置
- ReactOS 对象的结构,创建,使用,删除
- SQL中in参数在存储过程中传递及使用的方法
- mybatis 复习笔记03
- 【服务器】创建docker、运行jupyter相关命令
- 解决 ThinkPad x270 安装 ubuntu 14.04 后的网络问题
- c++使用递归来进行阶乘
- RS485通信原理图及程序实例详解
- 异速联服务器配置 虚拟机,异速联 安装教程
- 淘宝镜像(浏览器驱动等等等)
- java webservice 500_Webservice调用返回错误500
- 【10】Docker的安装 --Mac
- 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
- [原创]K8_C段旁注查询工具5.0 30款国外主流CMS识别+智能识别未知CMS