Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
26/12/07 7:05
cesco_fran
Ciao a tutti ed auguroni.

Ho pensato al VB come programma per l'idea a cui ho pensato, però se qualcuno ha un suggerimento altarnativo, è ben accetto!

Esistono diversi programmini che calcolano l'estrazione di 6 numeri casuali, tutti diversi e in un determinato range.

Ma quello a cui ho pensato io, è un evoluzione ed ampliazione dei "filtri" (così li chiamo io).

esempio, in questo stesso sito, ho trovato un programmino che ti fa decidere quanti numeri possono essere pari, io, ne ho in mente diversi! :D

Chi può aiutarmi?

il codice che estrae 6 numeri casuali è il seguente:

Sub estrai()

Dim N_Riga, Colonna As Integer
Dim I As Integer
Dim Numero As Integer
Dim Diverso, Non As Boolean
Dim Estrazioni(6) As Integer
Const Primo As Integer = 1

For N_Riga = 8 To 8
Randomize Timer

For I = 1 To 6
Diverso = True

Do
Diverso = True
Numero = Int(Rnd() * 91)
For J = 0 To I - 0
If Numero = Estrazioni(J) Then Diverso = False

Next J
Loop Until Diverso
Colonna = Primo + I
Estrazioni(I) = Numero
Cells(N_Riga, Colonna) = Numero
Next I
Next N_Riga

End Sub
-------------------------------------------
E' relativamente semplice, e siccome è un idea vecchia di 10 anni, penso che forse, debba essere rivista.
Ma non ho più la più pallida idea di come!:D

A questo codice, per mettere un primo filtro come ad esempio il poter decidere quanti numeri pari (Min e Max) ci possano essere, come dovrei procedere?

Grazie a chiunque sia "pazzo" da darmi retta!
ciao
aaa
26/12/07 11:22
GrG
Non ho capito bene quello ke intendi dire...8-|
Ti potresti spiegare meglio?
Al posto dell'estrazione dei 6 numeri, che vorresti fare?
Ultima modifica effettuata da GrG 26/12/07 11:23
aaa
26/12/07 13:55
gius
Ho capito!!!
In un intervallo di numeri tu vorresti sapere il numero minimo e il numero massimo di numeri pari per esempio,ma nn si può fare e ti spiego perchè.
Tra 2 e 6 ci sono tre numeri pari(compresi il 2 e il 6)e quindi i numeri pari sono per forza 3 nn possono essere ne di + ne di -.
la cosa che eventualmente si puo fare é capire se il numero é pari o dispari
Spero che mi sia spiegato:D
aaa
26/12/07 16:24
cesco_fran
ehm... veramente è tutt'altra cosa :D

perdonatemi, ma vi capisco! ..è una idea "ambiziosa" quanto "assurda" per la complessità (spero solo per quella e non per la difficoltà, anche se comincio ad avere dei dubbi..)

il programmino che ho riportato, estrae semplicemente 6 numeri casuali diversi tra loro in un campo di 90 numeri (i primi 90).

L'idea che mi è venuta è quella di "pilotare" l'estrazione (che è random), con diversi filtri.

il primo che avevo pensato era quello di, far estrarre una combinazione che all'interno non abbia tutti numeri pari o dispari, ma che ti permettesse di decidere (con 2 campi su cui inserire il valore minimo ed il valore massimo) quanti numeri pari debbano essere nella combinazione (e vien da se, che si regola anche quelli dispari).

un altro filtro era quello di non far uscire una combinazione con tutti numeri primi (anche qui, 2 campi dove mettere quanti massimo e minimi).

ecc ecc

Insomma "pazza" è l'idea e "pazzo" è colui che l'ha pensata! :D

PS attenzione, che i filtri che ho pensato sono tanti!
aaa
26/12/07 18:16
GrG
Quindi tu vorresti "condizionare" l'estrazione dei numeri nella maniera che ti pare?
Ultima modifica effettuata da GrG 26/12/07 18:18
aaa
26/12/07 19:01
cesco_fran
bravo, certo, non in maniera astratta, ma con dei filtri che man mano, volevo "caricare" di volta in volta sul programmino.

Sono pazzo, vero? :D
aaa
26/12/07 20:12
GrG
ancora non ti ho capito bene...Mi faresti qualke esempio?

Dim K As String

Private Sub Command1_Click()
Dim N_Riga, Colonna As Integer
Dim I As Integer
Dim Numero As Integer
Dim Diverso, Non As Boolean
Dim Estrazioni(6) As Integer
Const Primo As Integer = 1
Text1.Text = ""
For N_Riga = 8 To 8
Randomize Timer

For I = 1 To 6
Diverso = True

Do
Diverso = True
Numero = Int(Rnd() * 91)
For J = 0 To I - 0
If Numero = Estrazioni(J) Then Diverso = False

Next J
Loop Until Diverso
Colonna = Primo + I
Estrazioni(I) = Numero
'**************************************************************
Text1.Text = Text1.Text & Numero
'**************************************************************
K = Text1.Text
Text1.Text = Right(Text1.Text, 1)
If Text1.Text = "1" Then
Text1.Text = ""
'Text1.Text = K
End If
If Text1.Text = "2" Then
Text1.Text = K
End If
If Text1.Text = "4" Then
Text1.Text = K
End If
If Text1.Text = "6" Then
Text1.Text = K
End If
If Text1.Text = "8" Then
Text1.Text = K
End If
If Text1.Text = "0" Then
Text1.Text = K
End If
If Text1.Text = "3" Then
Text1.Text = ""
End If
If Text1.Text = "5" Then
Text1.Text = ""
End If
If Text1.Text = "7" Then
Text1.Text = ""
End If
If Text1.Text = "9" Then
Text1.Text = ""
End If
Text1.Text = Text1.Text & " "
'Cells(N_Riga, Colonna) = Numero
Next I
Next N_Riga

End Sub


Ad esempio questo codice ke ho fatto fa vedere in una textbox (text1) una sequenza di numeri casuali che varia da 0 a 6 ma, i numeri visualizzati sono SEMPRE PARI.

Tu cosa vorresti fare?
Cioè tipo vorresti fare che ogni volta escono 6 numeri ma minimo 3 devono essere pari?

p.s. Se nella text1 non compare niente dopo che hai premuto il command1, ripremilo xkè i numeri sono casuali e vanno da 0 a 6...
Ultima modifica effettuata da GrG 26/12/07 20:16
aaa
26/12/07 20:46
cesco_fran
Bravo! ...esattamente!

esempio: Applico il programmino ad un bottone su excel.

Clicco e mi estrae 6 numeri diversi.

1,5,56,77,87,89

Questa combinazione è composta da 5 numeri dispari ed 1 paro.

1° filtro. Nella stessa pagina, vorrei mettere una casella dove inserire il numero minimo di numeri pari e un altra con il nomero massimo.

Poniamo il caso di minimo 3, massimo 4
clicco su estrai e mi esce fuori una combinazione che non potrà mai essere simile a quella di prima (1,5,56,77,87,89).

così anche per gli altri "filtri", man mano entreranno nella schermata altri pannelli di controllo, per pilotare l'estrazione :D
aaa