您現在的位置是:電腦技術吧?>? 組裝維修 ??>??2c,8c??>??正文詳情

2c,8c

佘文心2019-12-08 15:02:27 人圍觀
簡介1c這個類適用于比較兩個字符的相似性。代碼如下:?使用系統;使用系統。收藏。通用的;使用系統的。文本;公共類stringcomputec點

本類適用于比較2個字符的相似度,代碼如下:  ? using System;  using System.Collections.Generic;  using System.Text;  public class StringCompute  {  #region 私有變量  ///  /// 字符串1  ///  private char[] _ArrChar1;  ///  /// 字符串2  ///  private char[] _ArrChar2;  ///  /// 統計結果  ///  private Result _Result;  ///  /// 開始時間  ///  private DateTime _BeginTime;  ///  /// 結束時間  ///  private DateTime _EndTime;  ///  /// 計算次數  ///  private int _ComputeTimes;  ///  /// 算法矩陣  ///  private int[,] _Matrix;  ///  /// 矩陣列數  ///  private int _Column;  ///  /// 矩陣行數  ///  private int _Row;  #endregion  #region 屬性  public Result ComputeResult  {  get { return _Result; }  }  #endregion  #region 構造函數  public StringCompute(string str1, string str2)  {  this.StringComputeInit(str1, str2);  }  public StringCompute()  {  }  #endregion  #region 算法實現  ///  /// 初始化算法基本信息  ///  /// 字符串1  /// 字符串2  private void StringComputeInit(string str1, string str2)  {  _ArrChar1 = str1.ToCharArray();  _ArrChar2 = str2.ToCharArray();  _Result = new Result();  _ComputeTimes = 0;  _Row = _ArrChar1.Length 1;  _Column = _ArrChar2.Length 1;  _Matrix = new int[_Row, _Column];  }  ///  /// 計算相似度  ///  public void Compute()  {  //開始時間  _BeginTime = DateTime.Now;  //初始化矩陣的第一行和第一列  this.InitMatrix();  int intCost = 0;  for (int i = 1; i _Row; i )  {  for (int j = 1; j _Column; j )  {  if (_ArrChar1[i - 1] == _ArrChar2[j - 1])  {  intCost = 0;  }  else  {  intCost = 1;  }  //關鍵步驟,計算當前位置值為左邊 1、上面 1、左上角 intCost中的最小值  //循環遍歷到最后_Matrix[_Row - 1, _Column - 1]即為兩個字符串的距離  _Matrix[i, j] = this.Minimum(_Matrix[i - 1, j] 1, _Matrix[i, j - 1] 1, _Matrix[i - 1, j - 1] intCost);  _ComputeTimes ;  }  }  //結束時間  _EndTime = DateTime.Now;  //相似率 移動次數小于最長的字符串長度的20%算同一題  int intLength = _Row _Column ? _Row : _Column;  _Result.Rate = (1 - (decimal)_Matrix[_Row - 1, _Column - 1] / intLength);  _Result.UseTime = (_EndTime - _BeginTime).ToString();  _Result.ComputeTimes = _ComputeTimes.ToString();  _Result.Difference = _Matrix[_Row - 1, _Column - 1];  }  ///  /// 計算相似度(不記錄比較時間)  ///  public void SpeedyCompute()  {  //開始時間  //_BeginTime = DateTime.Now;  //初始化矩陣的第一行和第一列  this.InitMatrix();  int intCost = 0;  for (int i = 1; i _Row; i )  {  for (int j = 1; j _Column; j )  {  if (_ArrChar1[i - 1] == _ArrChar2[j - 1])  {  intCost = 0;  }  else  {  intCost = 1;  }  //關鍵步驟,計算當前位置值為左邊 1、上面 1、左上角 intCost中的最小值  //循環遍歷到最后_Matrix[_Row - 1, _Column - 1]即為兩個字符串的距離  _Matrix[i, j] = this.Minimum(_Matrix[i - 1, j] 1, _Matrix[i, j - 1] 1, _Matrix[i - 1, j - 1] intCost);  _ComputeTimes ;  }  }  //結束時間  //_EndTime = DateTime.Now;  //相似率 移動次數小于最長的字符串長度的20%算同一題  int intLength = _Row _Column ? _Row : _Column;  _Result.Rate = (1 - (decimal)_Matrix[_Row - 1, _Column - 1] / intLength);  // _Result.UseTime = (_EndTime - _BeginTime).ToString();  _Result.ComputeTimes = _ComputeTimes.ToString();  _Result.Difference = _Matrix[_Row - 1, _Column - 1];  }  ///  /// 計算相似度  ///  /// 字符串1  /// 字符串2  public void Compute(string str1, string str2)  {  this.StringComputeInit(str1, str2);  this.Compute();  }  ///  /// 計算相似度  ///  /// 字符串1  /// 字符串2  public void SpeedyCompute(string str1, string str2)  {  this.StringComputeInit(str1, str2);  this.SpeedyCompute();  }  ///  /// 初始化矩陣的第一行和第一列  ///  private void InitMatrix()  {  for (int i = 0; i _Column; i )  {  _Matrix[0, i] = i;  }  for (int i = 0; i _Row; i )  {  _Matrix[i, 0] = i;  }  }  ///  /// 取三個數中的最小值  ///  ///  ///  ///  ///  private int Minimum(int First, int Second, int Third)  {  int intMin = First;  if (Second intMin)  {  intMin = Second;  }  if (Third intMin)  {  intMin = Third;  }  return intMin;  }  #endregion  }  ///  /// 計算結果  ///  public struct Result  {  ///  /// 相似度  ///  public decimal Rate;  ///  /// 對比次數  ///  public string ComputeTimes;  ///  /// 使用時間  ///  public string UseTime;  ///  /// 差異  ///  public int Difference;  }  調用方法:  ? // 方式一  StringCompute stringcompute1 = new StringCompute();  stringcompute1.SpeedyCompute(對比字符一, 對比字符二); // 計算相似度, 不記錄比較時間  decimal rate = stringcompute1.ComputeResult.Rate; // 相似度百分之幾,完全匹配相似度為1  // 方式二  StringCompute stringcompute2 = new StringCompute();  stringcompute2.Compute(); // 計算相似度, 記錄比較時間  string usetime = stringcompute2.ComputeResult.UseTime; // 對比使用時間

版權聲明:本文由 佘文心 整理編輯。

原標題:做c,a.c

轉載注明出處:http://www.dn9ww09s.icu/assemble/15245.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • printf 輸出到logcat,logcat輸出級別

    printf 輸出到logcat,logcat輸出級別 相關圖片logcat命令用法性能問題:手機與電腦連接后,驅動程序安裝正確,USB調試模式開啟,DDMS中可以看到設備及其進程信息,但logcat中沒有信息輸出。原因是一些rom默認關閉lo保存logcat...

  • access程序,access 編程

    access程序,access 編程 相關圖片access程序設計Dim conn Sub DBOpen()Dim db:db=Server.MapPath(zzz.mdb)在錯誤恢復時設置conn=Server.Createaccess數據庫設計程序...

  • 讓控件不可被點擊,要使某控件在運行時不可見

    讓控件不可被點擊,要使某控件在運行時不可見 相關圖片要在垂直位置上移動控件在做VB項目時,每個人都會遇到這個問題。在VB中添加控件時,請瀏覽工程部件。添加所需零件時,會彈出一個對話框*。無法將OCX注冊為ActiveX控件。此時,您可...

  • 手勢識別,手勢識別的應用

    手勢識別,手勢識別的應用 相關圖片手勢有什么用簡單的手勢功能(左、右滑動屏幕)在項目中使用,因此下一個import android.content.context;import android.util.d手勢...

  • wps默認保存路徑在哪,cad默認保存路徑

    wps默認保存路徑在哪,cad默認保存路徑 相關圖片保存修改相機照片默認保存路徑的方法是打開storage.java到:public static void updatedefaultdirectory(activiQQ下載文件保存位置...

  • XXLive,X-

    XXLive,X- 相關圖片x y這個例子運行在MySQL 5.0和更高版本上。MySQL給用戶權限命令的簡單格式可以概括為:向用戶1授予對數據庫對象的權限,向普通數據用戶授予查詢、插入、更新和e^x...

  • 2c,8c

    2c,8c 相關圖片1c抽象類和接口是面向對象編程中的兩個概念,但是研究編程多年的程序員有時并沒有明確的區別。下面解釋抽象類和接口的概念和區別。抽象類c點...

  • 2~7長度的中英文字符是多少,中英文字符

    2~7長度的中英文字符是多少,中英文字符 相關圖片中英文字符的名字函數strleng(str)ON ERROR RESUME NEXT dim WINNT_CHINESE WINNT_CHINESE=(len(論壇)=2)如W2到7位的中文字符或字母...

  • 溫馨提示的意義,月度總結的目的和意義

    溫馨提示的意義,月度總結的目的和意義 相關圖片理論提示有哪些方法Microsoft VBScript語法錯誤(0800a03e9)>內存不足Microsoft VBScript語法錯誤(0800a03ea)>語法錯誤Micr對甲亢有提示意義的...

  • EXIF信息,信息

    EXIF信息,信息 相關圖片android 圖片框架什么是EXIF?首先讓我們了解什么是EXIF。EXIF是一種圖像文件格式。它以JPEG格式存儲的數據完全相同。實際上,EXIF格式是JPEG格式,頭部插入數字照android長圖片處理...

熱評文章

  • 錯誤,打印狀態錯誤怎么解決

    錯誤,打印狀態錯誤怎么解決 相關圖片網絡錯誤癥狀:系統日志文件(控制面板管理工具系統日志)可以找到以下兩個錯誤:17052:無法恢復主數據庫。退出。18052:錯誤:9003,嚴重性:20,狀態:1。解決錯誤代碼...

  • selectcase怎么用,select case

    selectcase怎么用,select case 相關圖片select case結構如果語句選擇報表,則工作原理相同。但是,區別在于它們可以檢查多個值。當然,如果。。。其他的說法,但這并不總是最好的方法。select語句允許程序計算表達式,并嘗...

  • 交互開發,小程序開發交互

    交互開發,小程序開發交互 相關圖片javaweb交互系統開發教程一。基本知識:1。意圖對象包含一組信息:1。組件名稱指定要啟動的活動2。做什么動作3。數據傳輸4。第5類。附加鍵值對前端數據交互...

  • 解決中文亂碼問題,怎么解決中文亂碼問題

    解決中文亂碼問題,怎么解決中文亂碼問題 相關圖片文件亂碼怎么解決一、安裝網易博客網友制作的Sublimitext3優化版和Sublimitext2優化版,深度集成GBK編碼,完美解決中文亂碼問題,比官方版本更適合家庭使用環境網頁中文變成亂碼...

  • 2c,8c

    2c,8c 相關圖片1c本文主要介紹C?webclient類的使用實例。本文介紹如何使用webclient下載文件,openwriter打開流,使用指定的方法將數據寫入URI并上載文件c點...

  • excel函數實例教程,函數

    excel函數實例教程,函數 相關圖片excel函數運用教程ASP函數和ASP過程提供了一種方法來創建可用于重新編程代碼的模塊,并避免在執行特定任務時一次重寫一個塊的代碼。如果在ASP頁中沒有任何函數/程序,則當ASP頁coun...

  • 名詞解釋,LAK名詞解釋

    名詞解釋,LAK名詞解釋 相關圖片標準預防的名詞解釋本文主要介紹Python中幾種常見的名詞解釋。這種解釋也適用于其他編程語言。本文解釋了loop、iteration、recursion、traversal等名詞病理名詞解釋...

  • 此頁面需要在極速模式下顯示,極速模式怎么設置

    此頁面需要在極速模式下顯示,極速模式怎么設置 相關圖片找不到兼容性視圖設置標題:JSP頁面查詢顯示通用模式作者:Evan郵箱:Evan[[email protected]背景:1。需要在JSP中以列表模式2顯示數據庫查詢結果。在良好的J極速360切換不了兼容模式...

  • php explode函數,matlab中explode函數

    php explode函數,matlab中explode函數 相關圖片matlab中explode關于PHP split string expand函數的用法,使用expand函數將字符串拆分成數組。這里有幾個例子供你參考。PHP數組和擴展函數應用程序示例供strreplace函數...

  • 點擊按鈕跳轉,如何快速點擊頁面的按鈕

    點擊按鈕跳轉,如何快速點擊頁面的按鈕 相關圖片點擊按鈕彈出輸入框本文主要介紹jQuery實現按鈕點擊全選/取消全選單選框/復選框文本框表單驗證的相關資料。對于您的朋友,請參閱jQuery實現按鈕單擊全選/取消選擇單選框/復選點擊按...

關注微信

变脸官网查询