Novità

Come posso ordinarne i valori per frequenza decrescente o crescente?

claudio8

Premium Member
lotto_tom75;n2135351 ha scritto:
Si le ho capite. Grazie. :)
Ad ogni modo mi sono accorto di questo "incongruenza operativa"... :rolleyes: :

Se lascio visualizzare tutti i risultati di una ricerca o scelgo l'opzione mostra i primi 100 richiesta alla fine dell'elaborazione se i risultati superano questa cifra... tutto ok... mi mostra i risultati voluti secondo l'ordinamento per FQ scelto... (sia esso crescente o decrescente) mentre... se imposto come numero di risultati desiderati una qualsiasi cifra (es. 1) mi mostra sempre in ordine decrescente come se la scelta di ordinamento in questo caso non la sentisse... :(

Es. "figurativo" per cercare di spiegarmi meglio...

se per analizzare tutte le coppie x E imposto ad esempio
Codice:
 ReDim aCombMigliori(4005,4)
e scelgo ordinamento per freq crescente (opzioni da input 2,1)

Tutto ok... Perfetto la matrice è dimensionata ( con ReDim ) per contenere 4005 righe e 4 colonne quindi ti inserisce tutte le 4005 coppie di ambi

E in output ho le 4005 coppie mostrate in ordine crescente dall'alto verso il basso... corretto

Ma se imposto... un valore nettamente inferiore al numero integrale di combinazioni generate... (es. 1)

Codice:
 [U]ReDim[/U] aCombMigliori(1,4)
questo valore ti ridimensiona la matrice ad 1 riga e 4 colonne per cui nell'usarla con il ciclo For k = 1 To UBound(aCombMigliori) riga 48, tu avrai solo 1 riga che è quella che poi viene riportata in tabella ed in questo specifico caso, non avresti nulla da ordinare se non la sola riga (1). Tieni presente che l'effettivo ordinamento della matrice che fa il vbscript è di tipo decrescente e ciò viene fatto nella memoria del pc
Il costrutto ha la specifica di colonna da ordinare nella
Function ScegliValoreDaAnalizzare(sValore) in fase di input con la richiesta a scroll.
Spaziometria nel creare la tabella prima di scriverla in output con CreaTabella o modificarla sulla base dei parametri di questo comando (CreaTabelle) ha già quindi questo input di defoult,per questo l'ordinamento se imposti un valore di righe nel
ReDim aCombMigliori(.. ,4) maggiore di 1, in output, noterai che l'ordinamento funziona.
Nello specifico di questo costrutto,
Sub AnalisiComb oltre a creare la statistica, riposiziona i valori mettendli in ordine decrescente.



Allora lo script sembra non sentire minimamente l'ordinamento desiderato immesso come input...

E alla fine dell'operazione mi mostra soltanto il valore con FQ massima :eek: anzichè quello deisderato a fq min.

Why? :rolleyes:


Ps: Il pezzo di codice che mi risulta ancora piuttosto "incomprensibile" e dal quale credo dipenda "l'incongruenza" riportata sopra è questo....

Codice:
For k = 1 To UBound(aCombMig)[COLOR=#FF0000] ' dal 1a all'ultimo valore della array aComb[/COLOR]

If Valore >= aCombMig(k,0) Then [COLOR=#FF0000]' se Valore (freq,rit o ritmax)trovato nella array aCombMig e >= al valore della riga k,colonna 0 che sta leggendo[/COLOR]


For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)

Next [COLOR=#FF0000] ' le righe presenti successive a quella in analisi scalano in giù di 1 posto  portando sempre in alto il valore con freq/rit/ritMax in prima posizione

Lascio a te l'onere di correggere questa impostazione.  :mad:  :mad:  :mad:  :mad:[/COLOR]


aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = StringaNumeri(aNum)


Exit For

SALUTI MAIUSCOLI
 

lotto_tom75

Advanced Premium Member
:eek: Ok provo a capirci qualcosa... ma la vedo dura :D

Grazie comunque per le spiegazione in red ;)

Ad ogni modo...

Nel frattempo...

Ho provato anche questa strada per ordinare i valori dell'output di uno script integrale e cioè:

Dato l'output di questa funzione...

Codice:
Call StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)

Ho provato a crearmi una matrice ordinabile in questo modo...

Codice:
ReDim a(6,6)

   a(0,0) = StringaNumeri(aCol)
   a(0,1) = nSorte
   a(0,2) = RetRit1
   a(0,3) = RetRitMax
   a(0,4) = RetIncrRitMax
   a(0,5) = RetFreq

Call OrdinaMatrice(a,1,5)

ScriviMatrice a

Peccato però che la matrice me la scriva correttamente... ma che la funzione
Codice:
 OrdinaMatrice(a,1,5)
che dovrebbe ordinarmi se ho capito bene... la matrice in base alla colonna 5 e cioè alla frequenza appunto... non me la senta... affatto...

:confused: :eek: :rolleyes:
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
claudio8;n2135394 ha scritto:
Call OrdinaMatrice(a,1,5) correggi : OrdinaMatrice a,1,5

Fatto :)

Codice:
  OrdinaMatrice a,1,5

Non da errori.. :)
Ma è come prima... :confused:
L'ordinamento in base alla 5° colonna ossia alla frequenza, ma anche per qualsiasi altra delle cinque possibili non me lo effettua... :mad::confused::(:D
 

claudio8

Premium Member
Allora prova a postare lo script, a me sulla 1.6.23 non da errori, sulla colonna e sul tipo di ordinamento.
Ricordo che la 26, non gestiva correttamente i caratteri dei titoli delle mie tabelle, e poichè non fupossibile la correzione io la ho sostituita.
ciao
 

lotto_tom75

Advanced Premium Member
claudio8;n2135401 ha scritto:
Allora prova a postare lo script, a me sulla 1.6.23 non da errori, sulla colonna e sul tipo di ordinamento.
Ricordo che la 26, non gestiva correttamente i caratteri dei titoli delle mie tabelle, e poichè non fupossibile la correzione io la ho sostituita.
ciao

Codice:
Option Explicit
Sub Main

Dim k
Dim Classe
Dim aCol
ReDim aNum(90)
Dim i
Dim nSorte,Fine,RetRit1,QuantitaNumeriScelti,aRuoteSel,RuoteSelezionate,RetRitMax,RetIncrRitMax,RetFreq,Inizio
Dim ColTot

ReDim a(6,6) 'crea matrice

Dim contatore
contatore = 1

ReDim aNum(0)
QuantitaNumeriScelti = ScegliNumeri(aNum)


ReDim aRuoteSel(12)

   ReDim aRuoteSel(12)
   RuoteSelezionate = ScegliRuote(aRuoteSel)

   Call Scrivi(" ---------------------------------------------------------------- ")
   Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE! ")
   Call Scrivi(" ---------------------------------------------------------------- ")


   For k = 1 To RuoteSelezionate
      Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))

   Next


nSorte = 1
Classe = 2



ColTot = InitSviluppoIntegrale(aNum,Classe)



If ColTot > 0 Then


Do While GetCombSviluppo(aCol) = True


i = i + 1


ReDim aRuoteTmp(1)


For k = 1 To RuoteSelezionate


aRuoteTmp(1) = aRuoteSel(k)


Call StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)

Dim Diff
Diff = RetRitMax - RetRit1


Dim rapportoRARS
rapportoRARS = RetRit1/RetRitMax

Call AvanzamentoElab(1,ColTot,i)





If(RetRit1 >= 0) Then


Call Messaggio("Trovata!!! :) per la ruota di: " & SiglaRuota(aRuoteSel(k)))


'Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(aCol) & " RA: " & RetRit1 & " RS: " & RetRitMax & " INCMAX: " & RetIncrRitMax & " FQ: " & RetFreq & " RUOTA: " & NomeRuota(aRuoteSel(k)) & " DIFF " & Diff & " contatore " & contatore & " x sorte di punti: " & nSorte)
contatore = contatore + 1



   a(0,0) = StringaNumeri(aCol)
   a(0,1) = nSorte
   a(0,2) = RetRit1
   a(0,3) = RetRitMax
   a(0,4) = RetIncrRitMax
   a(0,5) = RetFreq





Else


Call Messaggio("Colonna " & i)


End If

   OrdinaMatrice a,1,5

   ScriviMatrice a


If ScriptInterrotto Then Exit Do
Next
Loop
End If

End Sub
 

claudio8

Premium Member
Prova con questo script test

Codice:
' test Ordinamento matrice

Sub Main

     ReDim a(10,10)

     a(1,1) = 1
     a(2,1) = 4
     a(3,1) = 3
     a(4,1) = 2
     a(5,1) = 5

     Call OrdinaMatrice(a,-1,1)
     ScriviMatrice a
Scrivi "----------------"
     For k = 1 To 5
          Call Scrivi(CStr(a(k,1)))
     Next
     Scrivi "----------------"
     For k = 1 To 10
          Call Scrivi(CStr(a(k,1)))
     Next
End Sub

il tuo script è un po confusionario... prova con questo, per testare.
poi spiegami cosa devefare passo passo il tuo script.
 

lotto_tom75

Advanced Premium Member
claudio8;n2135407 ha scritto:
Prova con questo script test

Codice:
' test Ordinamento matrice

Sub Main

ReDim a(10,10)

a(1,1) = 1
a(2,1) = 4
a(3,1) = 3
a(4,1) = 2
a(5,1) = 5

Call OrdinaMatrice(a,-1,1)
ScriviMatrice a
Scrivi "----------------"
For k = 1 To 5
Call Scrivi(CStr(a(k,1)))
Next
Scrivi "----------------"
For k = 1 To 10
Call Scrivi(CStr(a(k,1)))
Next
End Sub

il tuo script è un po confusionario... prova con questo, per testare.
poi spiegami cosa devefare passo passo il tuo script.

Questo è l'output dello script di test...

5
4
3
2
1

----------------
5
4
3
2
1
----------------
5
4
3
2
1


Mentre lo script integrale che ti ho postato in sostanza analizza per i parametri desiderati per la classe ( con limite a 20 elementi) e sorte volute i relativi valori statistici. L'implementazione ulteriore che vorrei farvi è appunto l'ordinamento dell'output in base ad uno di questi valori. Ad esempio la frequenza. Potendone altresì sceglierne il tipo di ordinamento crescente o decrescente. Funziona tutto tranne l'ordinamento... Se infatti rimuovi il carattere di commento a questa riga:



Codice:
'Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(aCol) & " RA: " & RetRit1 & " RS: " & RetRitMax & " INCMAX: " & RetIncrRitMax & " FQ: " & RetFreq & " RUOTA: " & NomeRuota(aRuoteSel(k)) & " DIFF " & Diff & " contatore " & contatore & " x sorte di punti: " & nSorte) 'contatore = contatore + 1


puoi vedere in output i risultati riga x riga anche se non ordinati... per nessuno dei parametri analizzati...
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Non so come... claudio ma ce l'ho fatta! :eek: :D

Ho implementato x tentativi... la funzione "OrdinaItemCollection" e a forza di errori... dopo qualche ora di patimento... ce l'ho fatta da solo! :p

Che soddisfazione! :eek: :D

Piccola Dimostrazione: (Analisi x coppia x E della prima colonna della tabella colorata con ordinamento per fq crescente)
Formazione Ruota Sorte Ritardo Ritardo Massimo Incremento di RItardo Massimo Frequenza
21.41 ruota:BA 1 37 92 0 1007
21.31 ruota:BA 1 37 68 0 1013
1.21 ruota:BA 1 2 61 0 1015
31.41 ruota:BA 1 43 74 0 1016
1.41 ruota:BA 1 2 51 0 1018
21.61 ruota:BA 1 21 97 0 1020
41.61 ruota:BA 1 21 77 0 1023
21.71 ruota:BA 1 12 66 0 1023
1.31 ruota:BA 1 2 66 0 1024
41.71 ruota:BA 1 12 64 0 1026
31.61 ruota:BA 1 21 73 0 1029
1.61 ruota:BA 1 2 59 0 1031
31.71 ruota:BA 1 12 62 0 1032
1.71 ruota:BA 1 2 62 0 1034
21.51 ruota:BA 1 6 52 0 1035
41.51 ruota:BA 1 6 55 0 1038
11.21 ruota:BA 1 6 80 0 1038
61.71 ruota:BA 1 12 92 0 1039
11.41 ruota:BA 1 6 69 0 1041
31.51 ruota:BA 1 6 60 0 1044
1.51 ruota:BA 1 2 52 0 1046
11.31 ruota:BA 1 6 84 0 1047
21.81 ruota:BA 1 10 64 0 1049
1.11 ruota:BA 1 2 69 0 1049
51.61 ruota:BA 1 6 70 0 1051
41.81 ruota:BA 1 10 64 0 1052
51.71 ruota:BA 1 6 50 0 1054
11.61 ruota:BA 1 6 71 0 1054
11.71 ruota:BA 1 6 46 0 1057
31.81 ruota:BA 1 10 53 0 1058
1.81 ruota:BA 1 2 49 0 1060
61.81 ruota:BA 1 10 78 0 1065
71.81 ruota:BA 1 10 70 0 1068
11.51 ruota:BA 1 6 57 0 1069
51.81 ruota:BA 1 6 74 0 1080
11.81 ruota:BA 1 6 64 0 1083


:cool:
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
claudio8;n2135507 ha scritto:

:eek: Alla faccia dell'entusiasmo... :D

A parte gli scherzi...

Nonostante la riuscita dell'implementazione nell'ultimo script x analisi di tipo integrale non sono ancora però riuscito ad ottenere quello che mi proponevo qui e nemmeno a decifrare il testo rosso dell'altro script presente sempre al punto #21 che mi avresti spiegato e che probabilmente mi avrebbe risolto quella necessità di avere un solo risultato a fq minore per poterlo salvare come file txt.

E' possibile avere qualche dritta riguardo a quella modifica delle scritte rosse? :rolleyes:

Grazie comunque claudio :)
 
Ultima modifica:

.MRK1.

Premium Member
Come posso ordinarne i valori per frequenza decrescente o crescente?


ciao tom 75
scusa , su spaziometria

ambi frequenti

estratto frequente

ritardo ambo
ritardo estratto
ecc

ci sono e sono uguali a questo script,

piu' veloce e piu possibilita'....

non so se lo usi
vedi un po' ciao
 
Ultima modifica:

lotto_tom75

Advanced Premium Member
Ciao MARK, si conosco le enormi potenzialità del programma. Lo studio... da quando il grande LuigiB l'ha creato per la prima volta anche se effettivamente ci sono ancora sezioni che non conosco quasi totalmente... :eek:. In questo caso però necessitavo di avere una soluzione via script e in particolare che mi potesse salvare alla fine come valore di output unico solo la formazione con fq minima rilevata per qualsiasi classe e sorte (ovviamente non superiore al limite di 20 elementi imposto dallo sviluppo integrale del programma). Grazie comunque per il tuo msg. Ciao :)
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 23 aprile 2024
    Bari
    47
    22
    34
    20
    50
    Cagliari
    33
    14
    86
    02
    62
    Firenze
    61
    22
    44
    19
    26
    Genova
    21
    12
    57
    82
    55
    Milano
    66
    05
    11
    70
    30
    Napoli
    05
    23
    25
    52
    73
    Palermo
    23
    44
    49
    71
    65
    Roma
    82
    37
    59
    34
    71
    Torino
    26
    42
    66
    15
    58
    Venezia
    57
    06
    68
    54
    84
    Nazionale
    21
    79
    49
    03
    01
    Estrazione Simbolotto
    Genova
    24
    02
    19
    03
    27
Alto