|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Junior Member
Iscritto dal: Jan 2010
Messaggi: 4
|
scusa,, potresti fare una cosa,, graziee
leggendo cosa nn riesco capire bene ![]() nn è ke puoi scrivere qsto in Visual Basic ,, Salvare il progetto ,, e fai UPLOAD su un sito .. e qui metti il link ![]() GRAZIE 1000!!!! |
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() ![]() Il codice di partenza ce l'hai, forza e coraggio... |
|
![]() |
![]() |
![]() |
#23 |
Junior Member
Iscritto dal: Jan 2010
Messaggi: 4
|
Dim a, b, c, d, e, f As String
Dim combinazione As String ' mi serve per elencare in listbox 'in queste variable assegno numeri o lettere per combinazione a = txtnum.Text b = txtnum1.Text c = txtnum2.Text d = txtnum3.Text e = txtnum4.Text f = txtnum5.Text For i = 0 To 100 ' max num di combinazioni ke voglio 'FORMUL COMBINAZIONI 'FORMULA COMBINAZIONI lstnum.AddItem = combinazione Next i allora questo è tutto quello che sono riuscito a fare... no so come usare il tuo codice @marcogg formula combinazioni ?? -- il codice ?? nn so cosa fare ![]() grazie in anticipo |
![]() |
![]() |
![]() |
#24 |
Junior Member
Iscritto dal: Feb 2013
Messaggi: 1
|
[quote=MarcoGG;29665484]Pronta !
![]() Basta aggiustare qualcosa : - Mentre nelle combinazioni con ripetizione la classe può anche superare il numero di elementi dell'insieme N, nelle combinazioni semplici no. ... Non ho ancora capito tutta la soluzione ma mi chiedevo se mi riuscivate ad aiutare a risolvere un CASO UN PO' PIU' COMPLESSO. TROVARE GRUPPI DI COMBINAZIONI SEMPLICI INDIEPNDENTI Ad esempio se sono 35 le combinazioni semplici di 7 elementi di classe 3, diventano 70 le "coppie" di terne indipendenti come ad esempio: (1,2,3) (4,5,6) (1,2,3) (4,5,7) (1,2,3) (4,6,7) (1,2,3) (5,6,7) (1,2,4) (......) In realtà poi non avrei finito perché dovrei trasformare gli elementi trovati in numeri binari, sommarli come se fossero numeri decimali e trovare quelle terne che mi danno somme differenti ... Ma già risolvere la prima parte mi SAREBBE DI ENORME AIUTO SPERO IN QUALCHE VOSTRO AIUTO |
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Io procederei come segue:
Combinazioni con ripetizione sono abbastanza semplici da enumerare. Se si hanno ad esempio 5 simboli e 7 cifre, e' sufficiente contare in base 5 fino a 5^7 Poi ad ogni valore da 0-4 si assegna una delle lettere risultato ed e' finito. Ad esempio 0000000 => AAAAAAA 0000001 => AAAAAAB 0000002 => AAAAAAC 0000003 0000004 0000010 0000011 0000012 etc. per contare in questo modo, o si gioca un po' con enumerazioni "moderne", cosa che VBA o VB vecchio non hanno, oppure si conta in modo normale e poi si trasforma di base 0 => 0000000 1 => 0000001 2 => 0000002 3 => 0000003 4 => 0000004 5 => 0000010 6 => 0000011 etc. E' quindi sufficiente contare da 0 a 5^7=78125, trasformare ciascun numero in base 5, tradurre ciascuna cifra con le lettera corrispondente ed e' finita. Il tuo esempio e' un poco piu' complesso, ma non piu' difficile. E' sufficiente contare con un numero in base mista. magari: Le prime 3 cifre in base 7, le altre 3 cifre in base 6 con enumerazioni su linguaggi "Moderni" resta semplice. Trasformare invece un numero decimale in un numero a base mista e' tutto un altro discorso. Forse e' meglio spaccare il problema proprio in 2, e tenere conto di 2 numeri decimali, passare i riporti a mano, etc. Molto piu' lungo e prono ad errori, ma se hai capito il ragionamento si fa. Metto qui il pezzo in codice in un linguaggio un po' piu' moderno, magari per farti venire voglia di evolvere... Codice:
class Program { static void Main(string[] args) { var domain = from c1 in Enumerable.Range(0,5) from c2 in Enumerable.Range(0,5) from c3 in Enumerable.Range(0,5) from c4 in Enumerable.Range(0,5) from c5 in Enumerable.Range(0,5) from c6 in Enumerable.Range(0,5) from c7 in Enumerable.Range(0,5) select new string(new char[]{Trans(c1), Trans(c2), Trans(c3), Trans(c4), Trans(c5), Trans(c6), Trans(c7)}); domain.ToList().ForEach(Console.WriteLine); Console.ReadKey(); } private static string conv = "ABCDEFGHIJKLMNOPOQRSTUVWXYZ"; private static char Trans(int n) { return conv[n]; } } Codice:
AAAAAAA AAAAAAB AAAAAAC ... EEEEEEEE Codice:
var domain = from c1 in Enumerable.Range(0,5) from c2 in Enumerable.Range(0,5) from c3 in Enumerable.Range(0,5) from c4 in Enumerable.Range(0,5) from c5 in Enumerable.Range(0,7) from c6 in Enumerable.Range(0,7) from c7 in Enumerable.Range(0,7) select new string(new char[]{Trans(c1), Trans(c2), Trans(c3), Trans(c4), Trans2(c5), Trans2(c6), Trans2(c7)}); Codice:
AAAAAZZZ AAAAAZZY AAAAAZZW ... AAAABZZZ AAAABZZY AAAABZZW ... EEEEETTT Ecco Codice:
static void Main(string[] args) { var rnd = new Random(); var domain = from c1 in Enumerable.Range(0,5) from c2 in Enumerable.Range(0,5) from c3 in Enumerable.Range(0,5) from c4 in Enumerable.Range(0,5) from c5 in Enumerable.Range(0,7) from c6 in Enumerable.Range(0,7) from c7 in Enumerable.Range(0,7) orderby rnd.NextDouble() select new string(new char[]{Trans(c1), Trans(c2), Trans(c3), Trans(c4), Trans2(c5), Trans2(c6), Trans2(c7)}); // cicla e stampa
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 20-02-2013 alle 01:00. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:21.