Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Aiutino per Algoritmo
domenica 14 ottobre 2012 - 11.18
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
VB.NET
|
Visual Studio 2010
|
Visual Studio 2008
|
Visual Studio 2005
|
Visual Studio 2003
|
Visual Studio 2002
|
Visual Studio Express
|
Javascript
|
VBScript
Antonio2277
Profilo
| Newbie
4
messaggi | Data Invio:
dom 14 ott 2012 - 11:18
Ho una sequenza di N valori vero-falso nella Matrice_A:
1|0|1|1|0|0|0|0|0|1|0|1|1|0|0|1|...
quello che voglio ottenere è la Matrice_B siffatta:
+1|-1|+2|-5|+1|-1|+2|-2|+1|...
cioè contare e cambiare segno e incrementare l'indice della matrice_b...
Aggiungo per essere piu chiaro:
Matrice_A
1|0|1|1|0|0|0|0|0|1|0|1|1|0|0|1|...
prendo il primo numero
Matrice_A(0) =|1| -> Matrice_B(0)= 1
Matrice_A(1) =|0| -> Matrice_B(1)= -1
Matrice_A(2) =|1| -> Matrice_B(2)= 2 (perchè ci stanno 2 valori consecutivi veri -> segno + )
Matrice_A(3) =|1|
Matrice_A(4) =|0| -> Matrice_B(3)= -5 (perchè ci stanno 5 valori consecutivi falsi -> segno - )
Matrice_A(5) =|0|
Matrice_A(6) =|0|
Matrice_A(7) =|0|
Matrice_A(8) =|0|
.....
e cosi via... quindi:
Matrice_B
+1|-1|+2|-5|+1|-1|+2|-2|+1|...
Grazie a tutti.
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
dom 14 ott 2012 - 12:13
>
Ho una sequenza di N valori vero-falso nella Matrice_A:
>1|0|1|1|0|0|0|0|0|1|0|1|1|0|0|1|...
>quello che voglio ottenere è la Matrice_B siffatta:
>+1|-1|+2|-5|+1|-1|+2|-2|+1|...
>cioè contare e cambiare segno e incrementare l'indice della matrice_b...
>
>Grazie a tutti.
non capisco bene cosa vuoi dire con contare (cosa) cambiare segno (quando c'è zero) e incrementare (quando)
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
http://yadamp.unisa.it/
- YADAMP CMS -
Antonio2277
Profilo
| Newbie
4
messaggi | Data Invio:
dom 14 ott 2012 - 12:30
(Ho modificato il messaggio originale spero sia piu chiaro)
luigidibiasi
Profilo
| Guru
1.077
messaggi | Data Invio:
dom 14 ott 2012 - 12:44
si... non ho come testarlo ma scrivo come mi viene in mente...
è in vb.net ma spero renda l'idea (e non contenga erroracci)
Dim mat1 As Array = Array.CreateInstance(GetType(Integer), 16)
mat1(0) = 1
mat1(1) = 0
mat1(2) = 1
mat1(3) = 1
mat1(4) = 0
mat1(5) = 0
mat1(6) = 0
mat1(7) = 0
mat1(8) = 0
mat1(9) = 1
mat1(10) = 0
mat1(11) = 1
mat1(12) = 1
mat1(13) = 0
mat1(14) = 0
mat1(15) = 1
Dim mat2 As Array = Array.CreateInstance(GetType(Integer), mat1.Length)
Dim index_to_write As Integer = 0
Dim value_to_write As Integer = 0
Dim last_read As Integer = mat1(0)
For i As Integer = 0 To mat1.Length - 1
If last_read <> mat1(i) Then
'# write
mat2(index_to_write) = value_to_write
index_to_write += 1
value_to_write = 0
End If
If mat1(i) = 1 Then
value_to_write += 1
ElseIf mat1(i) = 0 Then
value_to_write -= 1
End If
last_read = mat1(i)
Next i
mat2(index_to_write) = value_to_write
Luigi Di Biasi
http://www.dibiasi.it/
http://netsell.dibiasi.it
- ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
http://yadamp.unisa.it/
- YADAMP CMS -
Antonio2277
Profilo
| Newbie
4
messaggi | Data Invio:
dom 14 ott 2012 - 14:18
perfetto con qualche piccola modifica
(in quanto i dati erano di tipo boolean per la matriceA tra l altro)
sembra funzionare egregiamente!
thanks!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !