Novità

Per Luigi (suggerimento script)

  • Creatore Discussione Creatore Discussione Roby
  • Data di inizio Data di inizio
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
 
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 !!!"
 
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
 
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...
 
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 12 luglio 2025
    Bari
    67
    30
    66
    89
    47
    Cagliari
    06
    66
    33
    32
    37
    Firenze
    43
    25
    78
    21
    23
    Genova
    34
    20
    85
    52
    33
    Milano
    36
    19
    02
    70
    77
    Napoli
    21
    72
    74
    15
    53
    Palermo
    32
    08
    37
    02
    86
    Roma
    27
    32
    12
    67
    06
    Torino
    45
    47
    08
    13
    32
    Venezia
    29
    34
    19
    51
    53
    Nazionale
    34
    18
    56
    47
    85
    Estrazione Simbolotto
    Nazionale
    02
    26
    01
    08
    17

Ultimi Messaggi

Indietro
Alto