Condivido con voi questo script NON MIO e non sono uno che scrive script
ci tengo a sottolinearlo ma si vede... e neanche un previsionista... ci provo e qualche volta mi dice culo ..
dicevo: l'ho smanettato un po con l'ia cosi per gioco ,ora non voglio suscitare ilarità alcuna ,
è solo per giocopocomagioco...
Fate le vostre valutazioni. magari è solo una boiata ma chissà ,io ho notato cose buone valutando le figure dei migliori ind conv., ripeto è uin gioco per gli amici del 3d,
statevi bene
Sub Main()
' NUMERI CHE SI PRESENTANO ENTRO 9 ESTRAZIONI DALL' USCITA DELLA SPIA by Robyca
Dim nu(1)
Dim ru(1)
Dim fin, r, cs, cs1, es, x, y, spia, numToCheck, threshold, currentDelay, lastOccurrence, maxDelay, totalDraws
Dim lastOccurrences(90), numOccurrences(90), percentPresence, percentDelay, convenienceIndex, figurePresence(10)
Dim prnu(90, 5)
Dim fig, figNum ' Dichiarazione delle variabili fig e figNum
fin = EstrazioneFin()
r = CInt(InputBox("SU' CHE RUOTA FACCIO LA RICERCA", "", 10))
numToCheck = CInt(InputBox("Inserisci il numero da verificare", "", 1))
threshold = 10 ' Soglia per mostrare solo numeri con presenza maggiore di 10
totalDraws = 1000 ' Definito come il numero totale di estrazioni da considerare
ColoreTesto 2
Scrivi "Ricerca sulla ruota di " & NomeRuota(r) & " relativa alle " & _
"ultime 18 sortite della spia e alle 15 " & _
"maggiori presenze in un periodo di 9 estr. successive" & _
" alla spiata" & String(18, " ") & "Robyca"
ColoreTesto 0
Scrivi String(89, "*")
Scrivi
ru(1) = r
For spia = 1 To 90
Messaggio "NUMERO SPIA " & spia
cs = 0
' Inizializzazione degli array
For y = 1 To 90
numOccurrences
= 0
lastOccurrences
= 0
Next
For y = 1 To 10 ' Per le figure (1 a 10)
figurePresence
= 0
Next
For x = 0 To 1000
es = (fin - x) - 9
If Posizione(es, r, spia) > 0 Then
cs = cs + 1
For y = 1 To 90
nu(1) = y
If SerieFreq(es + 1, es + 9, nu, ru, 1) > 0 Then
numOccurrences
= numOccurrences
+ 1
' Calcola la figura del numero
fig = y Mod 10
If fig = 0 Then fig = 10
' Aggiorna figurePresence direttamente
figurePresence(fig) = figurePresence(fig) + 1
' Calcola il ritardo attuale
currentDelay = fin - es
If currentDelay > lastOccurrences
Then
lastOccurrences
= currentDelay
End If
End If
Next
If cs = 18 Then
cs1 = x
Exit For
End If
End If
Next
' Calcola il ritardo massimo per ogni numero
For y = 1 To 90
maxDelay = 0
lastOccurrence = -1
For x = 0 To 1000
es = (fin - x) - 9
If Posizione(es, r, spia) > 0 Then
If SerieFreq(es + 1, es + 9, nu, ru, 1) > 0 Then
If lastOccurrence <> -1 Then
If (lastOccurrence - es) > maxDelay Then
maxDelay = lastOccurrence - es
End If
End If
lastOccurrence = es
End If
End If
Next
prnu(y, 1) = y
prnu(y, 2) = numOccurrences
prnu(y, 3) = lastOccurrences
prnu(y, 4) = maxDelay
' Calcolo delle percentuali e dell'indice di convenienza
percentPresence = (numOccurrences
/ totalDraws) * 100
' Evita divisione per zero e calcola la percentuale di ritardo
If maxDelay > 0 Then
percentDelay = (lastOccurrences
/ maxDelay) * 100
Else
percentDelay = 0
End If
' Calcola l'indice della figura del numero
figNum = y Mod 10
If figNum = 0 Then figNum = 10
' Verifica che l'indice sia compreso tra 1 e 10
If figNum >= 1 And figNum <= 10 Then
convenienceIndex = percentPresence + figurePresence(figNum)
Else
convenienceIndex = percentPresence
End If
prnu(y, 5) = convenienceIndex
Next
' Ordina l'array prnu in base alle presenze usando un algoritmo di ordinamento più veloce
Call QuickSort(prnu, 1, 90, 2)
' Stampa i risultati per il numero specificato dall'utente
If prnu(numToCheck, 2) > threshold Then
ColoreTesto 2
Scrivi "Risultati per la ruota di " & NomeRuota(r) & " con spia numero: " & spia & " sortito " & _
cs & " volte in " & cs1 & " estrazioni."
ColoreTesto 0
Scrivi String(90, "-")
Scrivi "Num" & Space(2) & "Pres" & Space(2) & "Rit Att" & Space(3) & "Rit Max" & Space(3) & "Ind Conv"
Scrivi String(90, "-")
Scrivi FormatSpace(prnu(numToCheck, 1), 5) & FormatSpace(prnu(numToCheck, 2), 5) & _
FormatSpace(prnu(numToCheck, 3), 8) & FormatSpace(prnu(numToCheck, 4), 8) & _
FormatSpace(prnu(numToCheck, 5), 10)
Scrivi String(90, "-")
End If
' Mostra i risultati per tutti i numeri con presenza maggiore di 10
ColoreTesto 2
Scrivi "Tabella dei risultati per la ruota di " & NomeRuota(r) & " con spia numero: " & spia
ColoreTesto 0
Scrivi String(90, "-")
Scrivi "Num" & Space(2) & "Pres" & Space(2) & "Rit Att" & Space(3) & "Rit Max" & Space(3) & "Ind Con"
Scrivi String(90, "-")
For y = 1 To 90
If prnu(y, 2) > threshold Then
Scrivi FormatSpace(prnu(y, 1), 5) & FormatSpace(prnu(y, 2), 5) & _
FormatSpace(prnu(y, 3), 8) & FormatSpace(prnu(y, 4), 8) & _
FormatSpace(prnu(y, 5), 10)
End If
Next
Scrivi
cs = 0
Next
End Sub
' Funzione per formattare lo spazio
Function FormatSpace(num, length)
Dim result
result = CStr(num)
' Utilizzare uno spazio di riempimento per garantire che la lunghezza finale sia quella desiderata
If Len(result) < length Then
result = String(length - Len(result), " ") & result
End If
FormatSpace = result
End Function
' Funzione di ordinamento veloce (QuickSort) per la matrice
Sub QuickSort(arr, first, last, col)
Dim i, j, pivot, temp1, temp2, Mid
If first < last Then
Mid = (first + last) \ 2
pivot = arr(Mid, col)
i = first
j = last
While i <= j
While arr(i, col) > pivot
i = i + 1
Wend
While arr(j, col) < pivot
j = j - 1
Wend
If i <= j Then
' Swap
temp1 = arr(i, 1)
temp2 = arr(i, col)
arr(i, 1) = arr(j, 1)
arr(i, col) = arr(j, col)
arr(j, 1) = temp1
arr(j, col) = temp2
i = i + 1
j = j - 1
End If
Wend
Call QuickSort(arr, first, j, col)
Call QuickSort(arr, i, last, col)
End If
End Sub