Discussione:
Algoritmo per VB6
(troppo vecchio per rispondere)
emilio benecchi
2005-03-23 13:24:05 UTC
Permalink
Da un'urna contenente m numeri diversi estraggo, con reimbussolamento, un campione ordinato di dimensione n (ovviamente n < m).
Ho bisogno di un algoritmo per VB6 che mi dica se nel campione estratto vi sia almeno una coppia di numeri uguali. Maggiormente gradito sarebbe il codice per esteso.
Per inciso : io lo so fare ma il mio algoritmo non è né elegante né presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
1000 grazie a chi mi può aiutare.
ciao :-)
e.b.
hal1961
2005-03-23 14:00:14 UTC
Permalink
Post by emilio benecchi
Per inciso : io lo so fare ma il mio algoritmo non è né elegante né
presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
Post by emilio benecchi
1000 grazie a chi mi può aiutare.
Poi pero' l'esame viene accreditato noi, giusto? ;-)

--
ciao, hal

--------------------------------
Inviato via http://arianna.libero.it/usenet/
DecaPiero
2005-03-23 14:19:13 UTC
Permalink
Post by emilio benecchi
Da un'urna contenente m numeri diversi estraggo, con
reimbussolamento, un campione ordinato di dimensione n (ovviamente n <
m).
Post by emilio benecchi
Ho bisogno di un algoritmo per VB6 che mi dica se nel campione
estratto vi sia almeno una coppia di numeri uguali. Maggiormente
gradito sarebbe il codice per esteso.
Post by emilio benecchi
Per inciso : io lo so fare ma il mio algoritmo non è né elegante
né presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
Post by emilio benecchi
1000 grazie a chi mi può aiutare.
ciao :-)
e.b.
Se mandi il tuo codice magari si può anche "sistemare", io lo faccio
tutte le volte che riprendo in mano una mia routine.
(mi piacerebbe avere il tempo di lavorare bene, ma più spesse volte mi
tocca correre per finire in fretta senza badare all'eleganza... sigh!)
emilio benecchi
2005-03-23 22:03:15 UTC
Permalink
Post by emilio benecchi
Da un'urna contenente m numeri diversi estraggo, con
reimbussolamento, un campione ordinato di dimensione n (ovviamente n <
m).
Post by emilio benecchi
Ho bisogno di un algoritmo per VB6 che mi dica se nel campione
estratto vi sia almeno una coppia di numeri uguali. Maggiormente
gradito sarebbe il codice per esteso.
Post by emilio benecchi
Per inciso : io lo so fare ma il mio algoritmo non è né elegante
né presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
Post by emilio benecchi
1000 grazie a chi mi può aiutare.
ciao :-)
e.b.
Se mandi il tuo codice magari si può anche "sistemare", io lo faccio
tutte le volte che riprendo in mano una mia routine.
(mi piacerebbe avere il tempo di lavorare bene, ma più spesse volte mi
tocca correre per finire in fretta senza badare all'eleganza... sigh!)

Esempio m = 5 n = 2 (per brevità)

[CUT]
For i = 1 To NumeroProve
Randomize
C1 = Int(Rnd * 5 +1) ' C1 = compleanno della prima persona
Randomize
C2 = Int(Rnd * 5 +1) ' C2 = compleanno della seconda persona
If C2 = C1 Then
GoTo 10
Else
GoTo 20
End If
10 StessiCompleanni = StessiCompleanni + 1
20 Next i
[CUT]
Print "StessiCompleanni = "; Round(100 * StessiCompleanni/NumeroProve,2);
"%"
End Sub

Per prima cosa eliminare l'orribile GoTo......

Ciao :-)
e.b.
kenshiro2000
2005-03-23 22:22:09 UTC
Permalink
Usa l'algoritmo B che ti ho indicato nel mio post, fai un ciclo abanle,
generi il numero in modo pseudo-randomico e fai il check sul vettore di
M posizioni. Appeni cerchi di risettare un booleano a true significa che
hai un altro doppione

for i=1 to n
K=random(m)
v(i)=K
if (p(K)=false) then
p(K)=true
else
NumeroDoppioni=NumeroDoppioni+1
endif
next i
Wodka40°
2005-03-23 22:47:15 UTC
Permalink
emilio benecchi wrote:

SUPERZAC

ARRGH! dove è m e dove è n?
in quel codice?...

Allora prendo per buono quello che scrivi cercando di capire quello che vuoi
fare!

apri Vb
prendi un form
metti un command button ed un listbox
imposta le dimensioni verticali del listbox abbastanza "lunghe"

poi incolla questo codice

Option Explicit
'da cambiare a piacimento
Private Const NUMERIINGIOCO As Long = 100
Private Const NUMEROESTRAZIONI As Long = 1000
'la funzione di C non la capisco ....
'In pratica TARPI le uscite...
'allora non capisco perchè non imposti i numeri in gioco ad un valore più
piccolo!
' E' ridondante!
' per me ti sei spiegato male!
Private Const C As Long = 50
Private Estrazioni() As Long
Private Sub Command1_Click()
Dim n As Long
Dim numEstratto As Long
'inizializza array
ReDim Estrazioni(1 To NUMERIINGIOCO)
'reinizializzando senza "preserve" reimposti tutti i valori a ZERO!

For n = 1 To NUMEROESTRAZIONI
Randomize
numEstratto = CLng((Rnd * C) + 1)
Estrazioni(numEstratto) = Estrazioni(numEstratto) + 1
Next
' adesso mostra il risultato
' ti faccio notare che i numeri superiori a C non li fai uscire
' per definizione!
Me.List1.Clear
For n = 1 To NUMERIINGIOCO
If n > C Then
List1.AddItem "[" & CStr(n) & "] Numero escluso da C"
Else
List1.AddItem "(" & CStr(n) & ") uscito " & CStr(Estrazioni(n)) & "
volte"
End If

Next

End Sub



....schiaccia più volte il command per vedere cosa succede!
Su questo scheletro fai le variazioni che vuoi!
Leggi bene i commenti!...per me ti sei spiegato male!
forse volevi su 100 numeri far uscire solo C numeri
es. su 100 numeri solo 20 numeri diversi.....
ma ordinati che vuol dire?
su 100 numeri contare quante volte escono quelli da 20 a 40 ?
o che cosa?

Buono studio!
--
------------------------------------------------
Il Wodkino Nazionale è a : www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2 New Entry nel bestiario!
:-)
emilio benecchi
2005-03-24 17:38:10 UTC
Permalink
Post by Wodka40°
Allora prendo per buono quello che scrivi cercando di capire quello che vuoi
fare!
Senza fartene una colpa, però, ti devo dire che non hai proprio capito nulla
di ciò che ho scritto e chiesto.

Ho scritto : Da un'urna contenente m numeri diversi estraggo,con
reimbussolamento,
un campione ordinato di dimensione n ( n < m).
Spiegone : Nel calcolo delle probabilità l'operazione suddetta viene appunto
definita
estrazione di un "campione ordinato di classe n".
E questo risponde anche alla domanda che più avanti mi poni : ordinati che
vuol dire?

Ho chiesto : un algoritmo per VB che sia in grado di verificare se nel
campione ordinato estratto vi sia "almeno" una coppia di numeri uguali.
Commento : l'aggettivo "ordinato" e la parola "reimbussolamento" avrebbero
dovuto farti capire che nel campione estratto potevano presentarsi dei
numeri uguali.
Non che io non sia in grado di farmi tale programmino, ma ne volevo uno più
elegante.

Chiarito il punto non ho alcuna difficoltà a dirti che non ho capito una
mazza delle tue elocubrazioni. Comunque io ti ringrazio del contributo
perché ritengo che tu abbia agito in buona fede. Non tutti hanno il dono
della semplicità e della chiarezza.

Buon studio anche a te!
ciao :-)
e.b.
Wodka40°
2005-03-25 18:21:35 UTC
Permalink
Senti io non avrò capito una mazza ma
....
modificando un attimo....l'esempio...
se ho un array tutto a zero
.....poi eseguo 40 estrazioni incremtando il valore corrispondente come
indice al numero estratto....
ed
alla fine guardo

es.
se ho Array(27)=3

significa che su 40 estrazioni il 39 è uscito 3 volte!

con un minimo di programmazione ti puoi fare tutte le ricerche che
vuoi....sulla base di quell'array


Le mie elucubrazioni significano che Randomize e rnd NON va bene per
generare numeri casuali!
Ora hai capito????!
Wodka40°
2005-03-25 19:32:27 UTC
Permalink
io spero di no!
E che tutto faccia parte di un test universitario!

Ho cercato un po su google reimbussolamento....e mi vengono fuori un sacco
di link a psdeudoscienze "lottologiche"
Ciclometrie...leggi del terzo e menate varie!

Io spero che non sia l'ennesima domanda sul lotto!

Se lo è...non ti stare a bacare tanto le scatole:
http://www.villaceleste.it/html/Spippolamenti/index.asp
è quello che ti ci vuole!
Fa previsioni sulla base di calcoli complicatissimi e che hanno un delta
integrativo di errore prossimo a 0.8927 che come saprai è un ottimo
risultato!
...ed è pure velocissimo!
Saluti!
emilio benecchi
2005-03-26 09:37:37 UTC
Permalink
Wodka 40°,
Non ho detto che tu non abbia capito una mazza, ma che io "non ho capito una
mazza delle tue elocubrazioni".
Ora però, leggendo i tuoi due ultimi post, posso affermare, con prove alla
mano, che non capisci proprio una mazza.
Continui a non capire ciò che ho scritto e chiesto (vatti a rileggere il mio
post originale). Nonostane ciò hai la presunzione di darmi delle risposte
perseverando nelle tue elocubrazioni.
Tra le tue trollate vi è anche l'affermazione che la funzione Randomize non
va bene per generare numeri casuali. La funzione Randomize, se non ripetuta
nella routine (ad esempio : non la puoi collocare all'interno di un ciclo
For...Next) risponde molto bene alla richiesta di generare numeri casuali.
Poi tu potrai chiamare questi numeri come meglio vorrai (numeri pseudo
casuali o numeri strani o qualunque cosa ti venga in mente). Però non farai
un baffo alla loro attendibilità.
(Per inciso, ho fatto, per divertimento, decine di programmini sperimentali
VB per controllare le previsioni teoriche sulla probabilità di diversi
giochi (poker, roulette, dadi ...) ed ho avuto sempre una frequenza relativa
che ha confermato la previsione teorica.
Il mio cruccio è il fatto che tante volte ho dovuto far ricorso al GoTo.
E poi, dico, se la funzione Randomize fosse da buttare immagino che MS
l'avrebbe già eliminata dalle sue applicazioni.
Non ti crucciare. Ciò che conta è la buona fede, ed io mi sono convinto che
sia in buona fede.
Il giudizio lo lascio agli amici del NG che avranno avuto la benevolenza e
la pazienza di seguire questa diatriba.
Ciao :-)
e.b.
emilio benecchi
2005-03-26 09:48:14 UTC
Permalink
ERRATA
Ciò che conta è la buona fede, ed io mi sono convinto che sia in buona
fede.
CORRIGE in
Ciò che conta è la buona fede, ed io mi sono convinto che TU
sia in buona fede.
Wodka40°
2005-03-26 10:11:52 UTC
Permalink
emilio benecchi wrote:
io invece son convinto che tu NON sia in buona fede e con un altissima
considerazione di te stesso che ti porta a non essere obiettivo...pensa un
po!
appena ho tempo ti mando un po di link!

CERTO
bisogna aver voglia di leggerli....e anche di capirli...pensa un po!


Il fatto che parli di poker ed altro.....mamma mia!
Tra un po mi vieni a parlare di lottologia e ciclometria come scenze
(sciiiiiiienze scusa) esatte!

A tra un po!
Wodka40°
2005-03-26 12:00:25 UTC
Permalink
Wodka40° wrote:

Siccome ad un troll come me non ci credi (ma lo sai che vuol dire troll??!!
o hai sparato il primo termine che t'è passato in mente?)....
Un po di letteratura:


http://www.webinn.it/programmazione/vb/vblez15.asp
dice in mezzo
"...
L'istruzione Randomize serve ad inizializzare il generatore di numeri
casuali: come saprete, i numeri "casuali" generati da un qualunque computer
non sono veramente casuali, poiché sono generati in modo deterministico,
seguendo regole ben precise; solo che queste regole sono tali da garantire,
entro certi limiti, una sorta di casualità nei numeri generati, che per
questo vengono definiti più correttamente "pseudo-casuali".
...
"
http://www.ing.unitn.it/~fondinfo/appuntiAL/LEZIONE%20INFORMATICA/INFO131101/INFO131101.htm
recita:
"...
I numeri generati dal calcolatore sono pseudocasuali (partendo dallo stesso
seme otteniamo la stessa sequenza) per ovviare a ciò è introdotto RANDOMIZE
che permette di avere ogni volta una nuova sequenza di numeri pseudocasuali
(genera sequenze di partenza differenti perchè si basa sul tempo passato)
.."
il problema è che il timer in un pc non genera una sequenza infinita (come
non son infiniti i numeri rappresentati da un long, single,double etc
etc)...ma dopo un po si ripete...sputtanando tutti i calcoli eventuali sui
grandi numeri....quindi niente previsioni del lotto.
o meglio la % del culo è identica a quella di giocarsi i numeri della
patente o della tessera sanitaria!

In C esiste il solito problema:
http://ada2.unipv.it/biblio/trickyc/20c15.htm
"....
La libreria C include alcune funzioni per la generazione di numeri casuali.
Va subito precisato che si tratta di una casualità piuttosto... fittizia, in
quanto essi sono generati applicando un algoritmo di una certa complessità
ad un numero base, detto seed (seme). Dato che l'algoritmo è sempre lo
stesso, ad uguale seed corrisponde uguale numero casuale che, quindi, tanto
casuale poi non è (infatti si parla, per la precisione, di numeri
pseudocasuali). Per ovviare almeno parzialmente al problema, l'algoritmo di
generazione del numero casuale modifica il seed, con l'effetto di abbattere
la probabilità che venga generato sempre il medesimo numero casuale.
..."
Abbattere non significa "cancellare " occhio!

Una trattazione abbastanza esaustiva in italiano
http://www.statistica.unimib.it/utenti/mecatti/Corso%20MdS/dispensa%20pdf/Cap%20IV%20NUmeri%20Casuali.pdf
In questo documento viene descritto perchè Randomize e RND....e come sono
comodi.
E poi vedi come il problema sia "delicato"

In estrema sintesi dato un algoritmo deterministico....se mi dai tempo e ho
modo di studiare l'output, posso risalire all'input...ossia dopo un pò(il
"pò" è ralativo e a seconda della bontà dell'algoritmo sarà più o meno
lungo...ma comunque finito!) io riesco a prevedere che numero uscirà! Alla
faccia della casualità e senza chiamarmi "Mago Otelma...o Anubi"!

ti introduco anche un altro concetto:
l'algoritmo sarà sempre più buono quanto più alta sarà l'entropia del
generato!
http://macosa.dima.unige.it/agpr/sched8p3.htm



Tutta questa roba rileva alquanto ad esempio in criptografia....dove nessuno
si sognerebbe di fare uno XOR con una chiave generata con randomize e rnd !
O meglio..non per criptare il numero della carta di credito!

SINTESI:
Per fare una scopa o un poker casalingo va più che bene un RANDOMIZE E RND
per fare un casinò online già girerebbero le balle al
titolare....simulazioni economiche poi!

LOTTO e cazzate varie:
Oramai è una mia crociata personale
1 2 3 4 5 ha la stessa probabilità di uscita di una cinquina con tutti i
numeri + ritardatari!
Poi ti fai la ciclometria, il metodo di don Pasquale Pisciotta, il terno
secco ambato con il cactus di zia Emma ...quello che vuoi!
E' roba per polli che ci cascano...e siccome c'è un bel mercato ci credo che
molti ci si tuffano!
Sappi solo che è una pseudoscienza...come l'astrologia!
Poi fai te...in molti ci credono agli oroscopi!
Ma rimettiamo tutto nella prospettiva giusta!

Saluti!

p.s.
Quindi spero che troll te lo tenga adesso per te e ti renda conto delle
lamerate sparate (spero in buona fede)...puoi obiettare a me come persona!
Ma la matematica non è una opinione!

Ciao Lamer!
;-)

p.p.s
http://trollate.altervista.org/usenet.htm

Ahlòa!
--
------------------------------------------------
Il Wodkino Nazionale è a : www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2 New Entry nel bestiario!
:-)
emilio benecchi
2005-03-29 13:21:02 UTC
Permalink
Post by Wodka40°
Siccome ad un troll come me non ci credi (ma lo sai che vuol dire troll??!!
o hai sparato il primo termine che t'è passato in mente?)....
Appena rientrato ti rispondo...

Innanzitutto impara l'italiano. La frase : "Siccome ad un troll come me non
ci credi" in italiano corretto va scritta : Siccome non credi ad un troll
come me.
La tua frase contiene un doppio dativo (come : a me mi piace).
Significato di troll :
A) Personaggio del folklore teutonico abitatore di boschi e di caverne.
B) Esca per pescare (parte per il tutto).
C) Filo con esca per pescare (tutto).

Significato di to troll :
D) Pescare con filo ed esca trascinandoli nell'acqua.
E) Cantare o suonare allegramente.
F) Cantare le parti di una canzone in successione.

Penso che, nel NG, il neologismo americaneggiante troll venga usato al posto
di cavernicolo, un modo assai più urbano ed elegante che non dire stronzo.
Ne consegue che trollata, nel NG, è sostitutivo di stronzata.
Però non è detto che raramente, sempre nel NG, qualcuno lo usi per
furbastro, nel senso che il troll si prefigge di prendere gli altri all'amo
come pesci.
Questa è soltanto una mia ipotesi.

Vedo che ti manca il dono della sintesi e non sai perdere.
Ciao :-))
e.b.
Wodka40°
2005-03-29 18:19:46 UTC
Permalink
Post by emilio benecchi
Post by Wodka40°
Siccome ad un troll come me non ci credi (ma lo sai che vuol dire troll??!!
o hai sparato il primo termine che t'è passato in mente?)....
Appena rientrato ti rispondo...
Innanzitutto impara l'italiano. La frase : "Siccome ad un troll come
me non ci credi" in italiano corretto va scritta : Siccome non credi
ad un troll come me.
CUT

a me un mi sembra che te tu t'abbia afferrato il concetto!
ed infatti cambi discorso....da tutte le cose teoriche che a questo punto
temo o non capisci o non hai letto...!
Post by emilio benecchi
Vedo che ti manca il dono della sintesi e non sai perdere.
Beh guarda qui se c'è uno che perde...sono i poveri polli che spennerai
vendendo previsioni del lotto!
Post by emilio benecchi
Ciao :-))
No...un mentecatto come te merita solo un
ADDIO!
Post by emilio benecchi
e.b.
Tutto quanto sopra rileva solo se hai meno di 60 anni ....e quindi
"mastichi" un po di usenet, internet, netiquette etc etc

se ne hai di più mi scuso e sarò lieto di spiegarti punto punto cosa non va
nell'esposizione
e la relativa ironia di fondo che molto probabilmente non hai capito!

cmq sappi una cosa....al di là "dell'itagliano".....detto alla toscana

"
Oh bischero prendi per il culo quanto ti pare
...ma te tu c'hai tutte le basi sballate!
Che ti piaccia o u'n tì piaccia.
Ciao bucaiolo!
"


PLONK (sai che vuol dire???)

Ma guarda tu questo!

:o(
emilio benecchi
2005-03-30 09:41:07 UTC
Permalink
Post by Wodka40°
No...un mentecatto come te merita solo un
ADDIO!
Oh bischero
Ciao bucaiolo!
Se non ti rimane che l'insulto sei proprio all'ultima spiaggia!
Hai una peculiarità : quella di porre la tua testa sul ceppo per fartela
tagliare. Sei forse un tantino masochista o è soltanto inesperienza?
Non hai fermezza : mi dici ADDIO e poi, dopo soli 14 minuti, senti
l'improcrastinabile bisogno di scrivermi di nuovo (o dovevo dire postarmi?).
Penso che tu sia un caso interessantissimo per uno psicologo.
Sfortunatamente non sono uno strizzacervelli.
Noto che tu usi il linguaggio dei ricercatori universitari americani, ma tu
non sei americano!Tu devi ancora imparare l'italiano.
Io, avendo lavorato diversi anni negli USA, potrei permettermi di infarcire
il mio linguaggio di termini anglosassoni in slang. Preferisco parlare e
scrivere in buon Italiano.
Per ciò che riguarda la frequentazione di un qualsiasi NG penso che tutti ne
abbiano diritto quando ottemperano a questa regola aurea : rispetto del
manifesto e correttezza di linguaggio.
Mi sono già pentito di essermi lasciato andare all'uso della parola da
iniziati "trollata" di cui, tu guardiano inflessibile del purismo di usenet,
internet, netiquette etc, hai messo in dubbio io conoscessi il significato.
Mi scuso del mio errore. Avrei dovuto usare una delle tante parole in
dotazione alla nostra lingua : baggianata, cavolata, stupidata...Hanno la
stessa forza di grullata, belinata, stronzata, cazzata...e non danno adito
ad errate interpretazioni.
Avrai notato che ti ho degradato. Sei praticamente solo acqua.
Ciao :-)))
e.b.
Wodka40°
2005-03-30 15:39:37 UTC
Permalink
(non merita altro se non il cut)
SPLONK (non resisto)
BELLISSIMO!
sei uno dei migliori Lamer che abbia mai trovato!
:-)

Stampo tutto il post e lo incornicio!

mi piaciiiie
ops...
Ehm...cof....
Mi aggrada alquanto il passaggio:

"...
Io, avendo lavorato diversi anni negli USA, potrei permettermi di infarcire
il mio linguaggio di termini anglosassoni in slang. Preferisco parlare e
scrivere in buon Italiano.
....
"
Un purista noterebbe che:

"...Preferisco parlare e
scrivere in buon Italiano"

Non si scrive con la I maiuscola...vabbè l'igniiiiorante sono io!
Oltre che il significato "parlare e scrivere in buon italiano"....che è
alquanto suscettibile di varie interpretazioni:
L'italiano di chi?...di Manzoni....dell'Accademia della Crusca....dei
sussidiari....della Treccani...di chi?

E pensare che tutta l'"alta" discussione sul mio itagliano a confronto con
il tuo italiano...deriva da una mia cortesia nel farti notare come
RND e RANDOMIZE ti generassero numeri pseudocasuali...assolutamente inutili
per una qualsiasi "seria" indagine (statistica,stocastica,empirica).

Da noi si dice
"O vai a fà dè bene à ciuchi...calci in faccia ti pigli!"

cmq torniamo a noi!

Hai scritto pure dei libri nella lingua di Albione?
"How to sbank a NY lottery"
L'hay (notare la y) scritto tu???

:-)

p.s.
Così per sport.... dormo bene lo stesso...ma sarebbe una cosa carina se mi
rispondessi:
cosa è che ti ha dato più fastidio delle mie risposte....
che ti facessero sorgere qualche dubbio su cose che ritenevi certe?
(rnd...randomize)
.....o cosa?
Lascia stare la forma...
Almeno sulle questioni tecniche sei convinto?

:oD
emilio benecchi
2005-03-31 17:53:14 UTC
Permalink
Post by Wodka40°
"...Preferisco parlare e
scrivere in buon Italiano"
Non si scrive con la I maiuscola...
Hai perfettamente ragione. Per questo ti ho anche elevato di grado
portandoti da Wodka 0.40 a Wodka 3.5°. Ho volutamente scritto il sostantivo
Italiano con I maiuscola per sottolinare il fatto che ho della mia lingua la
stessa considerazione che gli inglesi hanno della loro. Infatti gli inglesi
scrivono :"Do you speak English?". Bravo ! Devi però ammettere che te
l'avevo messa su di un piatto d'argento.
Post by Wodka40°
p.s.
Così per sport.... dormo bene lo stesso...ma sarebbe una cosa carina se mi
cosa è che ti ha dato più fastidio delle mie risposte....
Nulla. Sei uno spasso. Almeno così la vedo io.

Ciao :-))))

p.s.
Prova a dare e dire agli altri solo ciò che ti chiedono. Ne ricaverai grandi
soddisfazioni e non batoste.
Wodka40°
2005-03-31 18:27:40 UTC
Permalink
emilio benecchi wrote:
CUT
Post by emilio benecchi
Nulla. Sei uno spasso. Almeno così la vedo io.
Ciao :-))))
p.s.
Prova a dare e dire agli altri solo ciò che ti chiedono. Ne ricaverai
grandi soddisfazioni e non batoste.
A) Vecchia discussione.....se non sai stare su un NG non ci venire!
Guarda qui:
http://groups.google.it/groups?hl=it&lr=&c2coff=1&threadm=8fa5eijy3ihb.pfhfov1dl5sm%24.dlg%4040tude.net&rnum=1&prev=/groups%3Fq%3Dcall%2Bcenter%2Bwodka%26hl%3Dit%26lr%3D%26c2coff%3D1%26selm%3D8fa5eijy3ihb.pfhfov1dl5sm%2524.dlg%254040tude.net%26rnum%3D1
Oramai è ciclica sta discussione!

B) Per capire bisogna attaccare il cervello...ti son stati dati
link...addirittura più di un programma....e continui a persistere!
In cosa persisti? BOH! oramai manco lo sai più te!

C) Batoste?...ma chi cazzo sei!
Sei venuto sul NG...attacchi uno che manco sai chi è....almeno
informati!Lurka un po il ng! (Chissà come questa espressione ti scatenerà)
Cercando con San google...ho visto come sul NG di matematica ti affanni!
Credimi le batoste da un lamer non si prendono mai!

Lamer-O-meter
12345678910***
Warning overhead!!!
BLAM!

Pensala come vuoi !
Se qualcuno vuol continuare ok....stampo il post lo incornicio!
Sappi che hai preso il posto di Franco (credevo fosse impossibile)!

D'ora in poi dirò:
"Smettila di fare l'emiliobenecchi"

Passo e chiudo!
Ciao nì!
emilio benecchi
2005-03-31 20:51:52 UTC
Permalink
Post by Wodka40°
Sei venuto sul NG...attacchi uno che manco sai chi è....almeno
informati!Lurka un po il ng! (Chissà come questa espressione ti scatenerà)
Sono tutto un fremito!
Parli proprio come quelli che dicono :"Lei non sa chi sono io".
Continui a divertirmi ma purtroppo devo anche tener conto di quelli che, nel
NG, giustamente ne hanno le palle piene. Uno di questi è javalab che
ringrazio per il suo consiglio che, però, non seguirò. Io con questa mail
chiudo l'argomento "Algoritmo per VB6" e ringrazio coloro che mi hanno
aiutato inviandomi brani di codice che non conoscevo, ma che studierò con
attenzione.
E' stato un piacere.
Ciao :-))))))
e.b.

p.s.
Noto che siete più di uno a volermi incorniciare.
javalab
2005-03-31 18:48:39 UTC
Permalink
Post by emilio benecchi
Italiano con I maiuscola per sottolinare il fatto che ho della mia lingua la
stessa considerazione che gli inglesi hanno della loro. Infatti gli inglesi
scrivono :"Do you speak English?".
gli Anglofoni Scrivono Con le Maiuscole Decisamente Troppe Cose,
e Questa Discussione ha Rotto il Cazzo non solo a Me :P

facciamo che vi scrivete in mail, eh ?
Wodka40°
2005-04-01 06:39:09 UTC
Permalink
Post by javalab
Post by emilio benecchi
Italiano con I maiuscola per sottolinare il fatto che ho della mia
lingua la stessa considerazione che gli inglesi hanno della loro.
Infatti gli inglesi scrivono :"Do you speak English?".
gli Anglofoni Scrivono Con le Maiuscole Decisamente Troppe Cose,
e Questa Discussione ha Rotto il Cazzo non solo a Me :P
facciamo che vi scrivete in mail, eh ?
beh insomma...alla fine...tanto va la gatta al lardo!
mi son benechizzato pure io!
a proposito di gatti...
Come sta "javina"?
Ciao!
:-P
Andrea Raimondi
2005-03-31 19:12:29 UTC
Permalink
Post by emilio benecchi
Se non ti rimane che l'insulto sei proprio all'ultima spiaggia!
LOL! Ma se non hai quasi fatto altro durante tutto il thread te!
Post by emilio benecchi
Penso che tu sia un caso interessantissimo per uno psicologo.
Tu invece un perfetto esempio di trollino :-)
Post by emilio benecchi
Noto che tu usi il linguaggio dei ricercatori universitari americani, ma tu
non sei americano!Tu devi ancora imparare l'italiano.
Qualcuno una volta disse che bisognava "risciaquar i panni in Arno", ma
forse te non sai di chi parlo(senza cercare con Google).
Post by emilio benecchi
Io, avendo lavorato diversi anni negli USA, potrei permettermi di infarcire
il mio linguaggio di termini anglosassoni in slang. Preferisco parlare e
scrivere in buon Italiano.
Ok. Allora dicci, trollino, che mansioni svolgevi negli U.S.A. e per
conto di chi? Quale azienda ti ha assunto?
Post by emilio benecchi
abbiano diritto quando ottemperano a questa regola aurea : rispetto del
manifesto e correttezza di linguaggio.
E la creanza verso il prossimo dove la mettiamo?
Post by emilio benecchi
iniziati "trollata" di cui, tu guardiano inflessibile del purismo di usenet,
internet, netiquette etc, hai messo in dubbio io conoscessi il significato.
Sei già su "ByNoi"? Devo controllare :D
No, sembra che tu non ci sia, magari una mail gliela mando e vediamo che
succede :D
Post by emilio benecchi
Ciao :-)))
Ciao,
Post by emilio benecchi
e.b.
Andrea
Wodka40°
2005-03-29 18:33:15 UTC
Permalink
cut
Post by emilio benecchi
Penso che, nel NG, il neologismo americaneggiante troll venga usato
al posto di cavernicolo, un modo assai più urbano ed elegante che non
dire stronzo. Ne consegue che trollata, nel NG, è sostitutivo di
stronzata.
Però non è detto che raramente, sempre nel NG, qualcuno lo usi per
furbastro, nel senso che il troll si prefigge di prendere gli altri
all'amo come pesci.
Questa è soltanto una mia ipotesi.
SOLO una cosa "extra risposta":
Se rispondi in questo modo capisco che non frequenti molto Internet e allora
forse sei una persona anziana che per diletto ogni tanto
entra in Usenet convinta di essere in un forum o non so dove.

Mini glossario:

TROLL:
colui che non ha altro scopo che provocare flame (vedi sotto). Non gli
interessa in alcun modo la risposta.
Sposta continuamente la discussione per aumentare il flame.

LAMER:
Lo spippolatore troppo pigro per capire cosa spippola. E' convinto di
conoscere tutto salvo fare eclatanti
figure di merda appena arriva un utente preparato o un guru.

GURU:
Colui che sa quello che dice. ma lo sa talmente bene che è in grado di dire
persino qualcosa di nuovo.

FLAME:
Discussione che degenera in rissa verbale. Scoppiano all'improvviso e sono
in grado sulla spinta di qualche troll di durare moltissimo.

OT
Off Topic . Discussione che non ha nulla a che fare con il manifesto del
gruppo di discussione.

PLONK
Abbandonare la discussione non per resa ma perchè troppo stupida e banale
per perderci tempo.

NEWBIE
Nuovo utente. Che chiede cose anche banalissime. A differenza del Lamer "non
crede già di sapere tutto" ma chiede per capire.

Chiaro?
L'americanismo?
Per forza Usenet è stata una delle prime forme di comunicazione
online...usato dai ricercatori universitari (americani) per scambiarsi
esperienze...


Comunque Italianismo

TROLL: Cretino rompicoglioni
LAMER: Stupido che sa tutto
GURU: Esperto ai massimi livelli in (specificare)
FLAME: Incazzatura generale con relativa rissa verbale
OT: Argomente assolutamente non pertinente
PLONK: Vado via sei troppo stupido
NEWBIE: Principiante Matricola

:-)
Andrea Raimondi
2005-03-31 18:49:24 UTC
Permalink
Post by emilio benecchi
Vedo che ti manca il dono della sintesi e non sai perdere.
Questa è una frase da incorniciare: "perdere", come se stessimo
facendo una gara. Beh, ti annuncio che non è così :-)
Post by emilio benecchi
Ciao :-))
Ciao,
Post by emilio benecchi
e.b.
Andrea
Yronium
2005-04-03 12:20:02 UTC
Permalink
[...CUT...]
Post by emilio benecchi
For i = 1 To NumeroProve
Randomize
C1 = Int(Rnd * 5 +1) ' C1 = compleanno della prima persona
Randomize
C2 = Int(Rnd * 5 +1) ' C2 = compleanno della seconda persona
If C2 = C1 Then
GoTo 10
Else
GoTo 20
End If
10 StessiCompleanni = StessiCompleanni + 1
20 Next i
Print "StessiCompleanni = "; Round(100 * StessiCompleanni/NumeroProve,2);
"%"
End Sub
Per prima cosa eliminare l'orribile GoTo......
Orribile è 20 Next i !!

For i = 1 To NumeroProve
Randomize
C1 = Int(Rnd * 5 +1) ' C1 = compleanno della prima persona
Randomize
C2 = Int(Rnd * 5 +1) ' C2 = compleanno della seconda persona
If C2 = C1 Then
StessiCompleanni = StessiCompleanni + 1
Exit For
End If
Next i



--------------------------------
Inviato via http://arianna.libero.it/usenet/

Wodka40°
2005-03-23 15:46:57 UTC
Permalink
"emilio benecchi" <***@aliceposta.it> ha scritto nel messaggio news:V5e0e.1104415$***@news4.tin.it...
Da un'urna contenente m numeri diversi estraggo, con reimbussolamento, un
campione ordinato di dimensione n (ovviamente n < m).
Ho bisogno di un algoritmo per VB6 che mi dica se nel campione estratto vi
sia almeno una coppia di numeri uguali. Maggiormente gradito sarebbe il
codice per esteso.
Per inciso : io lo so fare ma il mio algoritmo non è né elegante né
presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
1000 grazie a chi mi può aiutare.
ciao :-)
e.b.

Se ho capito bene ...tutto in buona sostanza si riduce a contare quante
volte un numero è stato estratto!
Beh una matrice ...altrimenti che servono?

Considerato che lo utilizzerai con m piccoli ...non ci son problemi di
memoria
se prendi l'indice come numero estratto ed il contenuto come numero di
volte.....

dim numero(1 to 90) as long

......77...le gambe....
numero(77)=numero(77)+1
....
etc etc

alla fine basta guardare i valori per sapere quante volte è uscito....

UNA CONSIDERAZIONE FONDAMENTALE:
generare un numero random è tutt'altro che banale per un computer!

Se ti fidi della funzione del VB...cadi in errore
Si tratta di numeri "pseudo-random"....tant'è che hai una funzione randomize
per cominciare la sequenza dove vuoi!

Tutto deve essere considerato in base a quelloc he vuoi fare!
Per simulare il lotto va bene...tanto non c'è nulla di scentifico nelle
previsioni del lotto!
Per estrarre una carta ...anche
Per simulazioni beh insomma!....sulla base dei risultati non ci fare
previsioni troppo affrettate!


Ammesso e non concesso che ti interessasse saperne di più
http://snipurl.com/dlxn
è un thread lunghissimo

oppure il + breve
http://snipurl.com/dlxq
oppure
http://snipurl.com/dlxr
--
------------------------------------------------
Il Wodkino Nazionale è a : www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2 New Entry nel bestiario!
:-)
kenshiro2000
2005-03-23 22:16:17 UTC
Permalink
Post by emilio benecchi
Da un'urna contenente m numeri diversi estraggo, con reimbussolamento,
un campione ordinato di dimensione n (ovviamente n < m).
Ho bisogno di un algoritmo per VB6 che mi dica se nel campione estratto
vi sia almeno una coppia di numeri uguali. Maggiormente gradito sarebbe
il codice per esteso.
Per inciso : io lo so fare ma il mio algoritmo non è né elegante né
presentabile perché, purtroppo, fa ricorso al famigerato GoTo.
1000 grazie a chi mi può aiutare.
Allora il fatto che il tuo algoritmo ricorra al Goto non è un male, anzi
al contrario dei sostenitori ad oltranza della vecchia programmazione
strutturata, spesso il goto ovvero i salti incondizionati permettono di
avere una maggiore efficienza nel codice.

Comunque:

A) Se n<<m, ovvero se n è sempre molto più piccolo di m:

Sia v[1..n] il vettore che contiene gli n elementi estratti

1. Ordina il vettore con un algoritmo di ordinamento efficiente, ti
consiglio il QuickSort che ha un tempo medio di H(n*lg(n))

2. scorri il vettore dall'inizio fino a quando incontri un doppio
valore, questo ti costa mediamente H((n+1)/2)

Quindi il costo dell'algoritmo mediamente è H(n*lg(n))

B) se n non è MOLTO MINORE di m

Siano v[1..n] e p[1..m] due vettori il primo di Integer il secondo di
booleani

Per ogni elemento estratto
aggiungi E a V
Se p(E)=false then
p(E)=true
else
DOPPIONE!!!!!
endif


Il costo di questo algoritmo è nel caso peggiore O(m) e nel caso medio
H((n+1)/2)


Spero di aver capito il tuo quesito.

Ciao

ken
Post by emilio benecchi
ciao :-)
e.b.
SB
2005-03-24 09:23:34 UTC
Permalink
Il giorno Wed, 23 Mar 2005 23:16:17 +0100, kenshiro2000
Post by kenshiro2000
Allora il fatto che il tuo algoritmo ricorra al Goto non è un male, anzi
al contrario dei sostenitori ad oltranza della vecchia programmazione
strutturata, spesso il goto ovvero i salti incondizionati permettono di
avere una maggiore efficienza nel codice.
Su questo sono completamente d'accordo, il Goto a volte è la strada
migliore.
Se per evitare questa istruzione devo fare costruzioni arzigogolate e
incasinate, il Goto va benissimo.

Pensa che io uso il GOTO anche in C (ovviamente senza esagerare, ma
avendo iniziaito anni fa con l'assembler mi viene +facile)

Tanto quando il programma viene compilato in linguaggio macchina fa un
sacco di salti con JMP o di BRA.

ciao
Stefano
emilio benecchi
2005-03-24 13:01:33 UTC
Permalink
Post by SB
Il giorno Wed, 23 Mar 2005 23:16:17 +0100, kenshiro2000
Post by kenshiro2000
Allora il fatto che il tuo algoritmo ricorra al Goto non è un male, anzi
al contrario dei sostenitori ad oltranza della vecchia programmazione
strutturata, spesso il goto ovvero i salti incondizionati permettono di
avere una maggiore efficienza nel codice.
Su questo sono completamente d'accordo, il Goto a volte è la strada
migliore.
Se per evitare questa istruzione devo fare costruzioni arzigogolate e
incasinate, il Goto va benissimo.
Pensa che io uso il GOTO anche in C (ovviamente senza esagerare, ma
avendo iniziaito anni fa con l'assembler mi viene +facile)
Tanto quando il programma viene compilato in linguaggio macchina fa un
sacco di salti con JMP o di BRA.
ciao
Stefano
1000 grazie a tutti coloro che mi hanno scritto. Ho gradito molto il fatto
che il povero
GoTo non sia stato ostracizzato. Ora ho dell'abbondante materiale da
studiare per migliorare le mie conoscenze di programmatore empirico.
Ciao :-)
e.b.
Andrea Raimondi
2005-04-01 13:42:02 UTC
Permalink
Post by kenshiro2000
Allora il fatto che il tuo algoritmo ricorra al Goto non è un male, anzi
al contrario dei sostenitori ad oltranza della vecchia programmazione
strutturata, spesso il goto ovvero i salti incondizionati permettono di
avere una maggiore efficienza nel codice.
Ecco, poi vedere queste perle di saggezza veramente cadono le braccia(e
credo non solo a me).

A parte che questa "efficienza nel codice" penso sia tutta da
dimostrare, io posso *DIMOSTRARTI*(anche subito, se vuoi) che una
buona strutturazione del codice ti permette non solo di non usare i
GoTo, ma anche di avere dei costrutti IF complessi, si, ma *chiari*.

Questo, /qualunque/ if *valido* tu mi sottoponga e di qualunque
complessità sia ricco.

Siamo nel 2005 ed ancora bisogna sentire cose del genere...
rabbrividisco.
Post by kenshiro2000
Ciao
Ciao,
Post by kenshiro2000
ken
Andrea
GbC|
2005-03-30 16:14:54 UTC
Permalink
"emilio benecchi" ha scritto...
Post by emilio benecchi
Da un'urna contenente m numeri diversi estraggo,
con reimbussolamento, un campione ordinato di
dimensione > n (ovviamente n < m).
Ho bisogno di un algoritmo per VB6 che mi dica
se nel campione estratto vi sia almeno una coppia
di numeri > uguali. Maggiormente gradito sarebbe
il codice per esteso.
Per inciso : io lo so fare ma il mio algoritmo non è né
elegante né presentabile perché, purtroppo, fa ricorso al
famigerato GoTo.
Così lo capisci o chiamo Wodka? :P
Il vettore (te lo estrai da solo tanto è facile) è veTToRE(n).

dim esiSTE as boolean
dim l as integer, p as integer
dim copPIE as integer

esiSTE = false
copPIE = 0

for l = 1 to n
for p = l to n
if veTToRE(p) = veTToRE(l) then
esiSTE = true
copPIE = copPIE + 1
end if
next
next

if esiSTE = true then
MsgBox "Pirla! Ho trovato " & copPIE & " coppia/e di numeri
uguali.",vbinformation,"Olé"
end if

Il goto è una barbarie e DEVE morire.
In altri linguaggi è già morto...
Vedo che qui si fa fatica.

-> GbC|
www.gbcweb.com

PS: c'è un errore nel codice.
Ma è facile facile capire.
Giusto per non dire 'la pappa fatta' :)
Continua a leggere su narkive:
Loading...