真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net優(yōu)化算法 vb界面優(yōu)化

vb.net中如何解決公式計算的精確度問題

僅僅是普通表達式的話,定義數(shù)據(jù)類型,比如從單精度改為雙精度,如果想保留小數(shù)點位數(shù),用formatnumber來處理。如果是某個算法的精度,就要復(fù)雜一些,要定義一個誤差,在算法迭代過程中,用while語句判斷計算結(jié)果的殘差是否小于定義的誤差值,至于殘差如何計算,與你的算法有關(guān)

創(chuàng)新互聯(lián)公司成立與2013年,先為絳縣等服務(wù)建站,絳縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為絳縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

如何用VB.NET StringBuilder優(yōu)化字符串操作性能

有許多字符串操作技巧可以幫助你優(yōu)化代碼,以獲得更好的性能。StringBuilder允許你執(zhí)行重復(fù)的字符串操作,取得比手工操作更佳的性能。在本文中,我說明在VB.NET中利用StringBuilder的情況。應(yīng)用StringBuilder的優(yōu)點StringBuilder是一個可修改字符的緩沖器。當你不直接進行字符串操作而應(yīng)用StringBuilder時,與每次重復(fù)生成一個含有修正的新字符串相比,這樣可以獲得更佳的性能。你不能總是希望性能得到提高,因為StringBuilder有少量的過度操作,會將指定字符串的內(nèi)容復(fù)制到StringBuilder中,然后將由StringBuilder得到的結(jié)果值復(fù)制回字符串對象中。在進行二個或更多字符串操作時,我建議使用StringBuilder。(如果只有一項改變,將值復(fù)制進StringBuilder再拷貝出來并不會改善性能。)StringBuilder方法Append:允許你在緩沖器末端增加一個字符串。注意,在應(yīng)用StringBuilder對象時不能使用操作符。 Insert:允許你在StringBuilder對象中增加一個字符串。(就像String.Insert一樣。) Remove:允許你從StringBuilder對象中刪除一個字符串。(就像String.Remove一樣。) Replace:允許你替代StringBuilder對象的一部分。(就像String.Replace一樣。) 實例在列表A的樣本代碼中,我建立一個字符串變量strOriginal來保存原始文本的值。我還定義StringBuilder對象BuilderStr,我將利用它對存儲在srtOriginal中的文本進行字符串操作。定義BuilderStr時,我將它設(shè)定到strOriginal的值中。之后,我操作BuilderStr,給它添加一些文本(“is”, ”very”,” important”),然后再利用Replace方法去掉”very”這個單詞。(注意,在這個例子中,你使用Remove方法而非Replace方法。)最后,我用BuilderStr.ToString的值更新strOriginal,并在信息框中顯示所得到的字符串。

幾種經(jīng)典的二值化方法及其vb.net實現(xiàn)

圖像二值化的目的是最大限度的將圖象中感興趣的部分保留下來,在很多情況下,也是進行圖像分析、特征提取與模式識別之前的必要的圖像預(yù)處理過程。這個看似簡單的問題,在過去的四十年里受到國內(nèi)外學(xué)者的廣泛關(guān)注,產(chǎn)生了數(shù)以百計的閾值選取方法,但如同其他圖像分割算法一樣,沒有一個現(xiàn)有方法對各種各樣的圖像都能得到令人滿意的結(jié)果。

本文針對幾種經(jīng)典而常用的二值發(fā)放進行了簡單的討論并給出了其vb.net 實現(xiàn)。

1、P-Tile法

Doyle于1962年提出的P-Tile (即P分位數(shù)法)可以說是最古老的一種閾值選取方法。該方法根據(jù)先驗概率來設(shè)定閾值,使得二值化后的目標或背景像素比例等于先驗概率,該方法簡單高效,但是對于先驗概率難于估計的圖像卻無能為力。

2、OTSU 算法(大津法)

OSTU算法可以說是自適應(yīng)計算單閾值(用來轉(zhuǎn)換灰度圖像為二值圖像)的簡單高效方法。1978 OTSU年提出的最大類間方差法以其計算簡單、穩(wěn)定有效,一直廣為使用。

3、迭代法(最佳閥值法)

(1). 求出圖象的最大灰度值和最小灰度值,分別記為Zl和Zk,令初始閾值為:

(2). 根據(jù)閾值TK將圖象分割為前景和背景,分別求出兩者的平均灰度值Z0和ZB:

式中,Z(i,j)是圖像上(i,j)點的象素值,N(i,j)是(i,j)點的權(quán)值,一般取1。

(3). 若TK=TK+1,則所得即為閾值,否則轉(zhuǎn)2,迭代計算。

4、一維最大熵閾值法

它的思想是統(tǒng)計圖像中每一個灰度級出現(xiàn)的概率 ,計算該灰度級的熵 ,假設(shè)以灰度級T分割圖像,圖像中低于T灰度級的像素點構(gòu)成目標物體(O),高于灰度級T的像素點構(gòu)成背景(B),那么各個灰度級在本區(qū)的分布概率為:

O區(qū): i=1,2……,t

B區(qū): i=t+1,t+2……L-1

上式中的 ,這樣對于數(shù)字圖像中的目標和背景區(qū)域的熵分別為:

對圖像中的每一個灰度級分別求取W=H0 +HB,選取使W最大的灰度級作為分割圖像的閾值,這就是一維最大熵閾值圖像分割法。

vb.net 排列組合算法

看了你說遞歸的效率低。那么你可以不用的。

給出的方法就是先生成第一個排列,然后每次調(diào)用下面的函數(shù)給出下一個排列,這樣生成的效率很高,這個函數(shù)可以內(nèi)聯(lián)。

這個是很經(jīng)典的排列組合算法???在網(wǎng)上能搜到一大堆。

大概是那種帶指向的移動的算法。我給你搜一個吧。

我找了幾個,這個是我覺得說的比較清楚的,你可以仔細參考一下,看不懂的話再搜點別的好了。。

全排列的算法跟這個不太一樣的。需要有點改動的。

至于語言的話,應(yīng)該不會有太大問題吧。。basic版的確實比較少,現(xiàn)在我也比較懶不想動手寫。。還是要靠你自己啦。

★生成排列的算法:

比如要生成5,4,3,2,1的全排列,首先找出一個最小的排列12345, 然后依次調(diào)用n!次STL算法中的next_permutation()即可輸出所有的全排列情況。所以這種算法的細節(jié)就是STL algorithm中next_permutation()的實現(xiàn)機制。詳細的實現(xiàn)代碼,大伙可以參考侯捷的《STL源代碼剖析》,在這里我只說一下我的理解:

1 首先從最尾端開始往前尋找兩個相鄰元素,令第一個元素為*i,第二個元素為*ii,且滿足*i*ii,找到這樣一組相鄰的元素后。

2 再從最尾端開始往前檢驗,找出第一個大于*i的元素,令為*k,將i,k元素對調(diào)。

3 再將ii及ii之后的所有元素顛倒排列,此即所求之"下一個"排列。

prev_permutation()算法的思路也基本相同,只不過它們尋找的"拐點"不同,在next_permutation()算法中尋找的是峰值拐點,而在prev_permutation()算法中尋找的是谷值拐點。另外,在第二步中,prev_permutation()要找的是第一個小于*i的元素而不是第一個大于*i的元素。

具體例子,有空再舉,現(xiàn)在時間太晚了:)

★生成組合的算法:

如下面截圖所示,分全組合和r-組合兩種情況。

這里有一段核心代碼:

//--------------------------------------------------------

// Generate next combination (algorithm from Rosen p. 286)

//--------------------------------------------------------

public int[] getNext () {

if (numLeft.equals (total)) {

numLeft = numLeft.subtract (BigInteger.ONE);

return a;

}

int i = r - 1;

while (a[i] == n - r + i) {

i--;

}

a[i] = a[i] + 1;

for (int j = i + 1; j r; j++) {

a[j] = a[i] + j - i;

}

numLeft = numLeft.subtract (BigInteger.ONE);

return a; //這里返回的a數(shù)組,存儲的就是下標的排列組合。

}

到這里,也許大伙會有一個疑問,假如要求的不是數(shù)字的排列組合,而是字符或字符串的排列組合呢?怎么辦?其實很簡單,你只要拿數(shù)組的下標來做排列組合,返回他們下標的排列組合,然后再到原數(shù)組中讀取字符串值,就可以輸出全部的排列組合結(jié)果。

vb.net 1.1中如何提高循環(huán)計算速度

運用多線程技術(shù)把一個任務(wù)分配到幾個線程上讓它們同時處理,這樣會比單線程快很多,不過多線程技術(shù)不是一兩話能說清的,你可以查一下相關(guān)的資料.


分享名稱:vb.net優(yōu)化算法 vb界面優(yōu)化
網(wǎng)站URL:http://weahome.cn/article/doscjcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部