devo inserire un certo numero di record per un test.
Un parametro può contenere il valore 1 o 2, ma debbono comparire, 1 con una frequenza del 90%, e 2 con la frequenza del 10%
Un aiuto?![]()
devo inserire un certo numero di record per un test.
Un parametro può contenere il valore 1 o 2, ma debbono comparire, 1 con una frequenza del 90%, e 2 con la frequenza del 10%
Un aiuto?![]()
Pietro
Sicuramente non ho capito, ma se fai un ciclo da uno a dieci, quando crei i valori, verifichi la variabile di incremento e, se è uguale a 10 metti il 2.
Così facendo però hai sempre il 2 alla decima posizione, potresti allora mettere come variabile incremento un numero random e, verificare quando l'ultima cifra(convertita in string)è uguale a 0.
Sicuramente è una soluzione inefficiente e magari una "Vaccata", però a botto mi è venuto in mente questo.
Ciao
Legnetto
Come??Originariamente inviato da pietro09
Ho fatto, grazie lo stesso![]()
Forse (e anche senza il forse) non mi sono spiegato bene.
Allora, in pratica debbo riempiere una tabella con un migliaio di record per dei test. Piuttosto che mettere valori fissi, preferisco mettere valori casuali. Alcuni campi, come per esempio, mittente, è un numero random tra 1 e MaxIdUtente, diciamo tra 1 e 455.
Altri campi, per esempio, elenco comuni, possono contenere un solo comune con una probabilità alta, e una diecina di comuni, con una probabilità molto più bassa.
Nel primo caso metto:
cioè scelgo un id_soggetto compreso tra 1 e 455codice:Comando.Parameters.Add("ID_SOGGETTO", Data.OleDb.OleDbType.Integer).Value = New Random(CInt(Date.Now.Ticks And Integer.MaxValue)).Next(1, 455 + 1)
nel 2° caso mi sono fatto una funzione di prova (in attesa che qualcuno rispondesse) ed ho visto che va
cioè, basta trovare un numero random tra 1 e 100: se è nell'intervallo 1-90, primo caso, altrimenti, secondo casocodice:Dim rand As New Random(CInt(Date.Now.Ticks And Integer.MaxValue)) Dim i% = 0 Dim n1%, n2%, n% For i = 1 To 1000000 n = rand.Next(1, 100 + 1) If n >= 1 And n <= 90 Then n1 += 1 Else n2 += 1 End If Next PrintLn(n1 * 100 / 1000000 & ", " & n2 * 100 / 1000000)
![]()
Pietro
Ok, forse non ti eri spiegato bene e, io non avevo capito, quindi una situazione perfetta....
Ciao
A cosa serve il "%" nella definizione delle variabili?
Grazie,
Fedrok
Corsi di Shiatsu a Brescia? Corso di Shiatsu a Brescia?
____________________________________
Visto che la luce viaggia piu' veloce del suono, sara' per questo che molte persone appaiono brillanti finchè non le senti parlare?
Allora, o tu sei troppo giovaneOriginariamente inviato da fedrok
A cosa serve il "%" nella definizione delle variabili?
Grazie,o io sono troppo vecchio
![]()
E' una vecchia sintassi del basic (gwbasic), che uso perchè non ho mai trovato nessun valido motivo per vergognarmene
![]()
In pratica,
Dim x% equivale a Dim x as integer
Dim x! equivale a Dim x as Single
Dim x# equivale a Dim x as Double
Dim x& equivale a Dim x as Long
Dim x@ equivale a Dim x as Decimal
Dim x$ equivale a Dim x as String
Comunque, se preso in piccole dosi non fa male alla salute![]()
ps.
Comunque, credevo che qualche spiegazione in più meritasse invece, l'istruzione:
codice:Dim rand As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))
![]()
Pietro
è un modo di iniziallizzare la classe a seconda del tempo in cui ci si trova in quel momento,usato per cercare di generare numeri casuali + casuali possibili.CInt(Date.Now.Ticks And Integer.MaxValue
gwbasic....quelli si che erano bei tempi....Originariamente inviato da pietro09
Allora, o tu sei troppo giovaneo io sono troppo vecchio
![]()
E' una vecchia sintassi del basic (gwbasic), che uso perchè non ho mai trovato nessun valido motivo per vergognarmene
![]()
In pratica,
Dim x% equivale a Dim x as integer
Dim x! equivale a Dim x as Single
Dim x# equivale a Dim x as Double
Dim x& equivale a Dim x as Long
Dim x@ equivale a Dim x as Decimal
Dim x$ equivale a Dim x as String
Comunque, se preso in piccole dosi non fa male alla salute![]()
ps.
Comunque, credevo che qualche spiegazione in più meritasse invece, l'istruzione:
codice:Dim rand As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))
![]()
Tutte le leggi umane, non quelle divine, sono il risultato di uno sforzo di uomini. Altri uomini vengono, modificano, aboliscono, perfezionano. Non ci vuole nulla ad abolire. Distruggere è facile, ma ricostruire è difficile.