1、2,有多少數(shù)據(jù)就畫多少曲線,前或后沒有就斷開唄,前后都沒有就畫橫線。
創(chuàng)新互聯(lián)專注于浉河企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站開發(fā)。浉河網(wǎng)站建設(shè)公司,為浉河等地區(qū)提供建站服務(wù)。全流程按需開發(fā)網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
3,數(shù)據(jù)庫按時間排序,選出最新時間值,然后根據(jù)這個值
,通過類似 select * from table where date#2010-8-20# and date#2007-8-23# 這樣的語句選出往前兩天的數(shù)據(jù)。
看了你說遞歸的效率低。那么你可以不用的。
給出的方法就是先生成第一個排列,然后每次調(diào)用下面的函數(shù)給出下一個排列,這樣生成的效率很高,這個函數(shù)可以內(nèi)聯(lián)。
這個是很經(jīng)典的排列組合算法?。吭诰W(wǎng)上能搜到一大堆。
大概是那種帶指向的移動的算法。我給你搜一個吧。
我找了幾個,這個是我覺得說的比較清楚的,你可以仔細(xì)參考一下,看不懂的話再搜點(diǎn)別的好了。。
全排列的算法跟這個不太一樣的。需要有點(diǎn)改動的。
至于語言的話,應(yīng)該不會有太大問題吧。。basic版的確實(shí)比較少,現(xiàn)在我也比較懶不想動手寫。。還是要靠你自己啦。
★生成排列的算法:
比如要生成5,4,3,2,1的全排列,首先找出一個最小的排列12345, 然后依次調(diào)用n!次STL算法中的next_permutation()即可輸出所有的全排列情況。所以這種算法的細(xì)節(jié)就是STL algorithm中next_permutation()的實(shí)現(xiàn)機(jī)制。詳細(xì)的實(shí)現(xiàn)代碼,大伙可以參考侯捷的《STL源代碼剖析》,在這里我只說一下我的理解:
1 首先從最尾端開始往前尋找兩個相鄰元素,令第一個元素為*i,第二個元素為*ii,且滿足*i*ii,找到這樣一組相鄰的元素后。
2 再從最尾端開始往前檢驗(yàn),找出第一個大于*i的元素,令為*k,將i,k元素對調(diào)。
3 再將ii及ii之后的所有元素顛倒排列,此即所求之"下一個"排列。
prev_permutation()算法的思路也基本相同,只不過它們尋找的"拐點(diǎn)"不同,在next_permutation()算法中尋找的是峰值拐點(diǎn),而在prev_permutation()算法中尋找的是谷值拐點(diǎn)。另外,在第二步中,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ù)組,存儲的就是下標(biāo)的排列組合。
}
到這里,也許大伙會有一個疑問,假如要求的不是數(shù)字的排列組合,而是字符或字符串的排列組合呢?怎么辦?其實(shí)很簡單,你只要拿數(shù)組的下標(biāo)來做排列組合,返回他們下標(biāo)的排列組合,然后再到原數(shù)組中讀取字符串值,就可以輸出全部的排列組合結(jié)果。
VB.NET數(shù)據(jù)類型VB.NET中有12種不同的數(shù)據(jù)類型,可以分成三類:數(shù)值類型、文本類型和混合類型。數(shù)值類型是VB.NET數(shù)據(jù)類型的主要類型,共7種。數(shù)值類型的數(shù)據(jù)類型見下表。 數(shù)據(jù)類型表示方式取 值 范 圍說 明整型Integer–2147483648~2147483647用于表示簡單整數(shù)字節(jié)型Byte0~255用于簡單算術(shù)運(yùn)算。由于這個類型的變量可以在一個字節(jié)中存儲,所以運(yùn)算速度最快短整型Short–32768~32767是整型的一種形式,相對表示范圍較小長整型Long–9223372036854775808~9223372036854775807是整型的一種形式,相對表示范圍較大單精
度型Single–3.402823E38~–1.401298E-45(對于負(fù)數(shù))和1.401298E-45~3.402823E38(對于正數(shù))用于存放單精度浮點(diǎn)數(shù)雙精
度型Double–1.79869313486232E308~–4.94065645841247E-324(對于負(fù)數(shù))和4.94065645841247E-324~1.79869313486232E308(對于正數(shù))用于存放雙精度浮點(diǎn)數(shù)小數(shù)Decimal當(dāng)小數(shù)位為0的時候,為–79228162514264337593543950335~
79228162514264337593543950335;當(dāng)小數(shù)位為28的時候,為–7.9228162514264337593543950335~
7.9228162514264337593543950335常用于存儲貨幣值 數(shù)值類型的數(shù)據(jù)類型 用于存放文本的數(shù)據(jù)類型有兩個。文本類型的VB.NET數(shù)據(jù)類型見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明字符串型String用于存放任何形式的字符串,包括一個字符或者多行字符字符型Char用于存放一個字符,它以0~65535之間數(shù)字的形式存儲文本類型的數(shù)據(jù)類型 其中需要說明的是: (1) 對于String類型,可以存放任何形式的字符串,它可以是純粹的文本,也可以是文本和數(shù)字的組合或者是數(shù)字、日期等。例如"This is a book. "和"12345"都是字符串。對于字符串類型的數(shù)據(jù),可以進(jìn)行相關(guān)的字符串操作,例如連接、截斷等。 (2) 對于Char類型,可以存儲的只是一個字符,注意,這個字符的存儲編碼必需是一個數(shù)字。在計算機(jī)系統(tǒng)中,可以顯示很多符號(不僅僅是英文字母),為了能夠正確地顯示,國際上有通用的標(biāo)準(zhǔn)(例如Unicode編碼),為每個字符設(shè)定了一個標(biāo)準(zhǔn)的數(shù)值來表示這個字符。其余的數(shù)據(jù)類型還有:Date數(shù)據(jù)類型、布爾數(shù)據(jù)類型和Object數(shù)據(jù)類型,其說明見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明日期型Date必須用mm/dd/yyyy的格式表示,也可以存儲時間(可以存儲00:00:00~23:59:59之間的任何時間)布爾型Boolean取值為True和False對象型Object 其他數(shù)據(jù)類型 其中需要說明的是:在VB.NET中,對于Boolean類型的數(shù)據(jù),當(dāng)需要把布爾類型的值轉(zhuǎn)換為數(shù)值類型的時候,會把True當(dāng)成1來處理,把False當(dāng)作0來處理。當(dāng)需要把VB.NET數(shù)值類型的值轉(zhuǎn)換為布爾類型的時候,會把0轉(zhuǎn)換為False,而把其他的非0數(shù)值轉(zhuǎn)換為True。
見下面的代碼,自己換成真實(shí)的數(shù)據(jù)庫及表即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Imports System.Data
Imports System.IO
Imports System.Data.OleDb
Module Module1
Public cn1 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS數(shù)據(jù)庫1.mdb") '定義連接1---這里請更改為實(shí)際數(shù)據(jù)庫路徑及名稱
Public cn2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS數(shù)據(jù)庫2.mdb") '定義連接2---這里請更改為實(shí)際數(shù)據(jù)庫路徑及名稱
Public DataBaseRST1 As Integer '用來返回數(shù)據(jù)庫執(zhí)行結(jié)果
Public DataBaseRST2 As Integer '用來返回數(shù)據(jù)庫執(zhí)行結(jié)果
Public Function DataModify(ByVal str_cmd1 As String, ByVal str_cmd2 As String) As Boolean '進(jìn)行數(shù)據(jù)庫修改操作函數(shù)
Dim cmdinsert1 As New OleDbCommand
Dim cmdinsert2 As New OleDbCommand
Try
cmdinsert1.CommandText = str_cmd1
cmdinsert2.CommandText = str_cmd2
cmdinsert1.Connection = cn1
cmdinsert2.Connection = cn2
If cn1.State = ConnectionState.Closed Then cn1.Open()
If cn2.State = ConnectionState.Closed Then cn2.Open()
DataBaseRST1 = cmdinsert1.ExecuteNonQuery() '用來返回執(zhí)行的結(jié)果
DataBaseRST2 = cmdinsert2.ExecuteNonQuery() '用來返回執(zhí)行的結(jié)果
cn1.Close()
cn2.Close()
Return True
Catch ex As Exception
MessageBox.Show(Err.Description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
End Module
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
DataModify("insert into aa values ('1','2')", "insert into aa values ('1','2')") '調(diào)用方法
End Sub
End Class
追問
這個方法我只能用于添加修改刪除,請問,查詢數(shù)據(jù)并且綁定到DGV怎么做?
回答
Public Function Search(ByVal cn1 As OleDb.OleDbConnection, ByVal cn2 As OleDb.OleDbConnection, ByVal str_cmd1 As String, ByVal str_cmd2 As String, ByVal DGV1 As DataGridView, ByVal DGV2 As DataGridView) As Boolean '查詢 str_cmd1,str_cmd2---查詢命令,DGV1,DGV2---DataGridView,用來顯示數(shù)據(jù)的控件
Dim tb1 As New DataTable
Dim tb2 As New DataTable
Try
Dim ap1 As New OleDb.OleDbDataAdapter(str_cmd1, cn1)
ap1.Fill(tb1)
DGV1.DataSource = tb1
Dim ap2 As New OleDb.OleDbDataAdapter(str_cmd2, cn2)
ap2.Fill(tb2)
DGV2.DataSource = tb2
Return True
Catch ex As Exception
MessageBox.Show(Err.Description, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
根據(jù)時間變化繪制的,即時的,或許可以用chart圖表控件,百度會出現(xiàn)微軟網(wǎng)站的資料。
sin曲線永遠(yuǎn)是哪個樣子,你是怎么變化?一般的移動,可以用offset控制向左平移,右邊則增加點(diǎn),看上去應(yīng)該是在移動
本文名稱:關(guān)于vb.net數(shù)據(jù)峰值的信息
轉(zhuǎn)載來源:http://aaarwkj.com/article14/dooocde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站收錄、定制開發(fā)、建站公司、網(wǎng)站維護(hù)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)