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è)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
3,數(shù)據(jù)庫按時(shí)間排序,選出最新時(shí)間值,然后根據(jù)這個(gè)值
,通過類似 select * from table where date#2010-8-20# and date#2007-8-23# 這樣的語句選出往前兩天的數(shù)據(jù)。
看了你說遞歸的效率低。那么你可以不用的。
給出的方法就是先生成第一個(gè)排列,然后每次調(diào)用下面的函數(shù)給出下一個(gè)排列,這樣生成的效率很高,這個(gè)函數(shù)可以內(nèi)聯(lián)。
這個(gè)是很經(jīng)典的排列組合算法???在網(wǎng)上能搜到一大堆。
大概是那種帶指向的移動(dòng)的算法。我給你搜一個(gè)吧。
我找了幾個(gè),這個(gè)是我覺得說的比較清楚的,你可以仔細(xì)參考一下,看不懂的話再搜點(diǎn)別的好了。。
全排列的算法跟這個(gè)不太一樣的。需要有點(diǎn)改動(dòng)的。
至于語言的話,應(yīng)該不會(huì)有太大問題吧。。basic版的確實(shí)比較少,現(xiàn)在我也比較懶不想動(dòng)手寫。。還是要靠你自己啦。
★生成排列的算法:
比如要生成5,4,3,2,1的全排列,首先找出一個(gè)最小的排列12345, 然后依次調(diào)用n!次STL算法中的next_permutation()即可輸出所有的全排列情況。所以這種算法的細(xì)節(jié)就是STL algorithm中next_permutation()的實(shí)現(xiàn)機(jī)制。詳細(xì)的實(shí)現(xiàn)代碼,大伙可以參考侯捷的《STL源代碼剖析》,在這里我只說一下我的理解:
1 首先從最尾端開始往前尋找兩個(gè)相鄰元素,令第一個(gè)元素為*i,第二個(gè)元素為*ii,且滿足*i*ii,找到這樣一組相鄰的元素后。
2 再從最尾端開始往前檢驗(yàn),找出第一個(gè)大于*i的元素,令為*k,將i,k元素對(duì)調(diào)。
3 再將ii及ii之后的所有元素顛倒排列,此即所求之"下一個(gè)"排列。
prev_permutation()算法的思路也基本相同,只不過它們尋找的"拐點(diǎn)"不同,在next_permutation()算法中尋找的是峰值拐點(diǎn),而在prev_permutation()算法中尋找的是谷值拐點(diǎn)。另外,在第二步中,prev_permutation()要找的是第一個(gè)小于*i的元素而不是第一個(gè)大于*i的元素。
具體例子,有空再舉,現(xiàn)在時(shí)間太晚了:)
★生成組合的算法:
如下面截圖所示,分全組合和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ù)組,存儲(chǔ)的就是下標(biāo)的排列組合。
}
到這里,也許大伙會(huì)有一個(gè)疑問,假如要求的不是數(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)算。由于這個(gè)類型的變量可以在一個(gè)字節(jié)中存儲(chǔ),所以運(yùn)算速度最快短整型Short–32768~32767是整型的一種形式,相對(duì)表示范圍較小長整型Long–9223372036854775808~9223372036854775807是整型的一種形式,相對(duì)表示范圍較大單精
度型Single–3.402823E38~–1.401298E-45(對(duì)于負(fù)數(shù))和1.401298E-45~3.402823E38(對(duì)于正數(shù))用于存放單精度浮點(diǎn)數(shù)雙精
度型Double–1.79869313486232E308~–4.94065645841247E-324(對(duì)于負(fù)數(shù))和4.94065645841247E-324~1.79869313486232E308(對(duì)于正數(shù))用于存放雙精度浮點(diǎn)數(shù)小數(shù)Decimal當(dāng)小數(shù)位為0的時(shí)候,為–79228162514264337593543950335~
79228162514264337593543950335;當(dāng)小數(shù)位為28的時(shí)候,為–7.9228162514264337593543950335~
7.9228162514264337593543950335常用于存儲(chǔ)貨幣值 數(shù)值類型的數(shù)據(jù)類型 用于存放文本的數(shù)據(jù)類型有兩個(gè)。文本類型的VB.NET數(shù)據(jù)類型見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明字符串型String用于存放任何形式的字符串,包括一個(gè)字符或者多行字符字符型Char用于存放一個(gè)字符,它以0~65535之間數(shù)字的形式存儲(chǔ)文本類型的數(shù)據(jù)類型 其中需要說明的是: (1) 對(duì)于String類型,可以存放任何形式的字符串,它可以是純粹的文本,也可以是文本和數(shù)字的組合或者是數(shù)字、日期等。例如"This is a book. "和"12345"都是字符串。對(duì)于字符串類型的數(shù)據(jù),可以進(jìn)行相關(guān)的字符串操作,例如連接、截?cái)嗟取?(2) 對(duì)于Char類型,可以存儲(chǔ)的只是一個(gè)字符,注意,這個(gè)字符的存儲(chǔ)編碼必需是一個(gè)數(shù)字。在計(jì)算機(jī)系統(tǒng)中,可以顯示很多符號(hào)(不僅僅是英文字母),為了能夠正確地顯示,國際上有通用的標(biāo)準(zhǔn)(例如Unicode編碼),為每個(gè)字符設(shè)定了一個(gè)標(biāo)準(zhǔn)的數(shù)值來表示這個(gè)字符。其余的數(shù)據(jù)類型還有:Date數(shù)據(jù)類型、布爾數(shù)據(jù)類型和Object數(shù)據(jù)類型,其說明見下表。 數(shù) 據(jù) 類 型表 示 方 式說 明日期型Date必須用mm/dd/yyyy的格式表示,也可以存儲(chǔ)時(shí)間(可以存儲(chǔ)00:00:00~23:59:59之間的任何時(shí)間)布爾型Boolean取值為True和False對(duì)象型Object 其他數(shù)據(jù)類型 其中需要說明的是:在VB.NET中,對(duì)于Boolean類型的數(shù)據(jù),當(dāng)需要把布爾類型的值轉(zhuǎn)換為數(shù)值類型的時(shí)候,會(huì)把True當(dāng)成1來處理,把False當(dāng)作0來處理。當(dāng)需要把VB.NET數(shù)值類型的值轉(zhuǎn)換為布爾類型的時(shí)候,會(huì)把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---這里請(qǐng)更改為實(shí)際數(shù)據(jù)庫路徑及名稱
Public cn2 As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS數(shù)據(jù)庫2.mdb") '定義連接2---這里請(qǐng)更改為實(shí)際數(shù)據(jù)庫路徑及名稱
Public DataBaseRST1 As Integer '用來返回?cái)?shù)據(jù)庫執(zhí)行結(jié)果
Public DataBaseRST2 As Integer '用來返回?cái)?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
追問
這個(gè)方法我只能用于添加修改刪除,請(qǐng)問,查詢數(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ù)時(shí)間變化繪制的,即時(shí)的,或許可以用chart圖表控件,百度會(huì)出現(xiàn)微軟網(wǎng)站的資料。
sin曲線永遠(yuǎn)是哪個(gè)樣子,你是怎么變化?一般的移動(dòng),可以用offset控制向左平移,右邊則增加點(diǎn),看上去應(yīng)該是在移動(dòng)
本文名稱:關(guān)于vb.net數(shù)據(jù)峰值的信息
轉(zhuǎn)載來源:http://vcdvsql.cn/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)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)