Novità

Per Luigi (suggerimento script)

Stato
Chiusa ad ulteriori risposte.
R

Roby

Guest
Ciao Luigi,
lo script qui sotto, trova le cinquine che abbiano n ritardi consecutivi superiore al valore impostato.
Ho due domande da farti:

1)Perchè in alcune cinquine trovate la funzione StringaNumeri non scrive la sequenza di numeri?

2)Vorrei elaborare tutte le combinazioni possibili, ma come ben sai, con gli script i tempi di elaborazione sono lunghissimi.
C'è qualche modo per poter risolvere questo problema?

Grazie per la tua disponibilità, ciao.

Codice:
Option Explicit
Sub Main
	Dim aRuota(1)
	Dim aNumeri(4)
	Dim aRitCons(10)
	Dim aRitMinimo
	Dim Inizio
	Dim Fine
	Dim co,r,a,b,c,d,y
	aRitMinimo = CInt(InputBox("Inserisci il ritardo minimo :",,10))
	For r = 1 To 10
		aRuota(1) = r
		For a = 1 To 1
			For b = a + 1 To 50
				For c = b + 1 To 5
					For d = c + 1 To 10
						aNumeri(1) = a
						aNumeri(2) = b
						aNumeri(3) = c
						aNumeri(4) = d
						Inizio = EstrazioneIni
						Fine = EstrazioneFin
						co = 0
						Erase aRitCons
						For y = 1 To 10
							aRitCons(y) = SerieRitardo(Inizio,Fine,aNumeri,aRuota,2)
							If aRitCons(y) >= aRitMinimo Then
								co = co + 1
							Else
								Exit For
							End If
							Fine = Fine - aRitCons(y) - 1
						Next
						If co >= 5 Then
							Scrivi FormatSpace(NomeRuota(r),10) & FormatSpace(StringaNumeri(aNumeri),15) & FormatSpace(StringaNumeri(aRitCons),50)
						End If
					Next
				Next
			Next
		Next
	Next
End Sub
 

claudio8

Premium Member
X luigi,
anche io ho il problema dei tempi lunghi di attesa sulle combimazioni.

Lo spot che conosciamo dice "Ti Piace vincere facile ? " che tradotto in pratica significa "Ti Piace..rebbe vincere facile !!!"
 

fillotto

Advanced Member >PLATINUM<
quote:Originally posted by stef

Ciao Luigi,
lo script qui sotto, trova le cinquine che abbiano n ritardi consecutivi superiore al valore impostato.
Ho due domande da farti:

1)Perchè in alcune cinquine trovate la funzione StringaNumeri non scrive la sequenza di numeri?

2)Vorrei elaborare tutte le combinazioni possibili, ma come ben sai, con gli script i tempi di elaborazione sono lunghissimi.
C'è qualche modo per poter risolvere questo problema?

Grazie per la tua disponibilità, ciao.

Codice:
Option Explicit
Sub Main
	Dim aRuota(1)
	Dim aNumeri(4)
	Dim aRitCons(10)
	Dim aRitMinimo
	Dim Inizio
	Dim Fine
	Dim co,r,a,b,c,d,y
	aRitMinimo = CInt(InputBox("Inserisci il ritardo minimo :",,10))
	For r = 1 To 10
		aRuota(1) = r
		For a = 1 To 1
			For b = a + 1 To 50
				For c = b + 1 To 5
					For d = c + 1 To 10
						aNumeri(1) = a
						aNumeri(2) = b
						aNumeri(3) = c
						aNumeri(4) = d
						Inizio = EstrazioneIni
						Fine = EstrazioneFin
						co = 0
						Erase aRitCons
						For y = 1 To 10
							aRitCons(y) = SerieRitardo(Inizio,Fine,aNumeri,aRuota,2)
							If aRitCons(y) >= aRitMinimo Then
								co = co + 1
							Else
								Exit For
							End If
							Fine = Fine - aRitCons(y) - 1
						Next
						If co >= 5 Then
							Scrivi FormatSpace(NomeRuota(r),10) & FormatSpace(StringaNumeri(aNumeri),15) & FormatSpace(StringaNumeri(aRitCons),50)
						End If
					Next
				Next
			Next
		Next
	Next
End Sub
Ho lanciato questo script ho impstato prima a 10 poi a 6 ma l'output
non lo riesco ad interpretare come si legge???ovvero cosa si prefigge
questo è uno stralcio di output con l'immissione minima 6:
Genova 01.02.04.07
Genova 01.02.04.08
Genova 01.02.04.09 48.68.19.50.05
Genova 01.02.04.10
Genova 01.02.05.06
Genova 01.02.05.07
Genova 01.02.05.08
Genova 01.02.05.09
Genova 01.02.05.10
Genova 01.03.04.06
Genova 01.03.04.07 14.33.63.52.18.39.70
Genova 01.03.04.08
Genova 01.03.04.09 48.34.53.46.21.17.32.56.78.67
 

stef

Member
quote:Originally posted by fillotto
Ho lanciato questo script ho impstato prima a 10 poi a 6 ma l'output
non lo riesco ad interpretare come si legge???ovvero cosa si prefigge
questo è uno stralcio di output con l'immissione minima 6:
Genova 01.02.04.07
Genova 01.02.04.08
Genova 01.02.04.09 48.68.19.50.05
Genova 01.02.04.10
Genova 01.02.05.06
Genova 01.02.05.07
Genova 01.02.05.08
Genova 01.02.05.09
Genova 01.02.05.10
Genova 01.03.04.06
Genova 01.03.04.07 14.33.63.52.18.39.70
Genova 01.03.04.08
Genova 01.03.04.09 48.34.53.46.21.17.32.56.78.67

Lo scopo dello script, è quello di trovare formazioni di numeri che abbiano n ritardi consecutivi superiore al proprio ciclo teorico.
L'output non è corretto, in quanto la funzione StringNumeri non scrive alcune sequenze di numeri... aspettiamo Luigi...
 
L

LuigiB

Guest
Allora rgazzi il motivo per il quale lo script non espone il giusto output come ha giustamente detto stef dipende dalla funzione stringa numeri.
Ineffetti questa funzione scrive i numeri senza ripetizioni e solo se sono compresi tra 1 e 90 scusate, non potevte saperlo perche non l'ho inserito nell'help ..non va bene quindi per scrivere i ritardi
visto che questi ultimi specie nel caso degli ambi possono tranquillamente superare questo valore.
Ho deciso che modifichero la funzione per consentire la stampa di qualsiasi numero.
Riguardo la velocita stef probabilmente gia lo sa a claudio lo dico ora anche se mi pare di averlo gia detto a suo tempo questo importante concetto :
purtroppo il linguaggio script non è un linguaggio compilato ma interpretato pertanto al tempo gia necessario per eseguire i comandi
impartiti dal codice dello script si aggiunge il tempo per tradurre al volo questi comandi affinche siano comprensibili al povero computer per farglieli eseguire.
Anche i compilati possono variare in velocita di esecuzione (per esempio un programma scritto in c++ è piu veloce di uno scritto in vb) ma spesso non è la velocita di esecuzione del codice a
rendere lento un algoritmo bensi è l'algoritmo stesso che non è ottimizzato o in altri casi un tantinello complessi come questo è scelto nel modo piu semplice , cioe uno pensa : per trovare la cinquina che ha una serie consecutiva di ritardi superiori a un certo valore faccio una cosa molto semplice e cioe analizzo tutte le cinquine possibili e sicuramente ottero cio che chiedo , questo è certamente vero in teoria ma non in pratica .. le cinquine son 90 milioni e anche un programma compilato e scritto in c++ avrebbe qualche bel problema di lentezza.
Bisogna pensare ad un algoritmo piu intelligente che non abbia bisogno di sviluppare tutte le cinquine possibili.
Faccio un esempio : cerco le cinquine che hanno un ritardo consecutivo di ambo sempre maggiore di 50 ?
Bene tanto per incominciare nessuna delle mie cinquine deve contenere uno degli ambi che si son formati nelle ultime 60 estrazioni perche di sicuro queste non rientrano nella mia richiesta.
Quindi invece di partire dalle cinquine potrei partire dagli ambi sapere il ritardo di quelli e poi combinarli tra loro scegliendoli
appositamente in funzione del ritardo ..gia questa sarebbe una bella botta di salute per il povero algoritmo.
Non dico di fare cosie eh ...è solo un esempio per farvi comprendere che scegliere un algoritmo semplice avra il vantaggio di essere facile da programmare ma potrebbe avere un effetto nefasto sulla velocita di esecuzione cio non mi pesa se devo analizzare 90 estratti
ma potrebeb inziare pesare se devo analizzare 90 milioni di cinquine ...
Un algoritmo complesso invece sara difficile da programmare e anche da inventare visto che di queste cose sul web non ce n'è neanche l'ombra (parlo di codice da copiare bello e pronto) pero è piu veloce
in esecuzione perche proggettato apposta.
Bene detto questo faro la modifica alla funzione stringanumeri che ho detto all'inizio nel prossimo aggiornamento

Ciao
 
Stato
Chiusa ad ulteriori risposte.

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 04 maggio 2024
    Bari
    02
    31
    81
    52
    21
    Cagliari
    39
    88
    84
    01
    67
    Firenze
    36
    30
    70
    06
    41
    Genova
    59
    23
    61
    22
    27
    Milano
    05
    17
    69
    57
    39
    Napoli
    81
    62
    82
    43
    50
    Palermo
    73
    55
    62
    45
    18
    Roma
    76
    70
    01
    64
    15
    Torino
    82
    55
    35
    70
    46
    Venezia
    58
    23
    61
    29
    21
    Nazionale
    10
    14
    01
    43
    09
    Estrazione Simbolotto
    Milano
    30
    01
    05
    32
    11

Ultimi Messaggi

Alto