Oppure

Loading
11/03/10 16:11
manuel0810
Ciao a tutti, sono nuovo, inesperto e ignorante.

Mi servirebbe una mano riguardante un codice da inserire in visual basic per la mia tesi. Riuscirei a farlo a mano in excel più o meno, ma mi piacerebbe automatizzarlo tramite macro.

Io devo cercare tutte le permutazioni possibili di 8 numeri da un campione di 4 a disposizione (in progressione 1,2,3,...,60). e fin qui persino io potrei non avere problemi. In aggiunta però mi servono alcuni filtri ovvero:
- degli 8 numeri necessariamente devo averne 2 pari (textbox che mi chiede quanti numeri pari voglio che io abbia in uscita per esempio potrebbe andare bene??)
- la somma degli 8 numeri deve restare tra 360 e 440 (oppure la media tra 45 e 55)
- le permutazioni non si devono ripetere
- se possibile scegliere almeno un numero all'interno della permutazione (ovvero voglio che ci sia almeno l'8 nelle combinazioni da me trovate).

Cosa dite? se non sono stato chiaro (cosa molto probabile) ditemelo pls.

Grazie

aaa
11/03/10 20:20
GrG
allora, io ho capito che tu hai 8 numeri da 1 a 60 e che devi applicarvi dei filtri giusto?
se si...
Postato originariamente da manuel0810:
- degli 8 numeri necessariamente devo averne 2 pari

basta che usi un ciclo for e per vedere se è pari usa la funzione

Private Function NumPari(Byval num as integer) as boolean
if num Mod 2 = 0 then 'lo divido per 2 e se il resto è 0
NumPari = True 'allora è pari
else
NumPari = False ' altrimenti dispari
end if
End Function

- la somma degli 8 numeri deve restare tra 360 e 440 (oppure la media tra 45 e 55)

dipende da dove ce li hai questi numeri... in un array? in una textbox? dove?
Comunque sia basta che li sommi e con un if controlli...
if (risultato > 360) AND (risultato < 440) then ...

- le permutazioni non si devono ripetere

ehmm... che sono le permutazioni? :-|

- se possibile scegliere almeno un numero all'interno della permutazione (ovvero voglio che ci sia almeno l'8 nelle combinazioni da me trovate).

sempre con un ciclo vedi se vi è il numero 8
aaa