Italian contare la consecuzione massima in una lista

Schakalaka

Active Member
Licensed User
Ciao a tutti.
avrei bisogno di contare il numero massimo di occorrenze date delle condizioni, in una lista:

Esempio:
data questa lista:
B4X:
-0.004610065124446061
0.02412318803632174
0.03442874108058658
0.004630475508776266
0.007486548937753801
-0.01977070596528674
-0.025789140194926174
-0.003678222332563097
0.0014081714686220437
devo ottenere il numero massimo di volte in cui il valore è positivo e il numero massimo in cui è negativo
Ovvero 4 volte positivo, e 3 volte negativo.

Spero sia chiaro;

Qualcuno ha già avuto questa necessità?

Grazie
 

Star-Dust

Expert
Licensed User
Longtime User
Qual'è la domanda di preciso? Vuoi sapere se ci è capitato o non sai come fare e vuoi sapere come farlo?
 

udg

Expert
Licensed User
Longtime User
Ovvero 4 volte positivo, e 3 volte negativo.
La lista di esempio ha 9 valori. C'è un criterio per cui ne scarti due? Oppre è 4 negativi e 5 positivi?
Il caso di valore ugiuale a zero, lo classifichi come positivo o come caso a sé?
Non è sufficnete un test del tipo:
if value >= 0 then positivi=positivi+1 else negativi=negativi+1
In realtà basterebeb conrare i soli positivi (o negativi) e ricavare il numero di elemnti dell'altro gruppo da List.size-positivi o roba del genere
 

Schakalaka

Active Member
Licensed User
La lista di esempio ha 9 valori. C'è un criterio per cui ne scarti due? Oppre è 4 negativi e 5 positivi?
Il caso di valore ugiuale a zero, lo classifichi come positivo o come caso a sé?
Non è sufficnete un test del tipo:
if value >= 0 then positivi=positivi+1 else negativi=negativi+1
In realtà basterebeb conrare i soli positivi (o negativi) e ricavare il numero di elemnti dell'altro gruppo da List.size-positivi o roba del genere

no, no ,
quello che voglio ottenere è la sequenza massima, non il totale dei negativi e positivi
per questo il quel test, non va bene.

se vuoi una lista piu lunga:
B4X:
-0.0013409230994231303
-0.007103566709727116
0.009590676908998619
-0.0034593596024513618
0.004021773310345589
0.0027129216935457556
-1.7405334261044736E-4
-0.002405930736686157
0.003179073403768218
-9.147470398277457E-4
0.005054354349112833
0.00464966499128372
-8.630156806791467E-4
-0.0116943088736291
-8.860843478819547E-4
0.0045429384691626495
0.0053727378611674315
-0.0014347973592360175
-0.006883152844772589
-0.006282717537744897
-0.0019734531430937174
-0.02687265134608241
-0.016088285507317335
-0.008202513657398991
-0.003882918940512625
3.2414724296403463E-4
0.00528893034542488
-0.0031649959913866432
-0.006502813675498764
-0.009813789050923782
0.004546048791875812
4.713020509308219E-4
0.0012141692882301491
0.0033169939038026897
-0.004389846283695764
-0.010626771409214308
0.006596808713674962
-1.259361251970681E-5
0.0043010060557382435
0.00202611258544505
-0.00798400741969707
0.003375968041489985
-0.0015783465475328606
0.0028699540275667346
0.008458261762680719
0.0015923801864186071
-0.0049864059431696806
-0.0023335608435616217
0.0013990979725719832
-0.0022848027730735243
-0.006827860437381261
0.005159138686762654
-0.004877362592393797
-0.023271968378796415
-0.0024586687449809075
0.0036210744615210455
-0.007698441124810218
0.004275792852922011
0.009156799948977001
0.007934450674422333
-0.00588672630788889
0.0020342481166191195
0.0033455896098830706
-0.021480660377358518
0.009765910277416578
-0.013731906889703605
0.0197523615586106
-0.003364877776949715
-0.006806770955872232
0.0016241628632067684
0.0035145102210918377
-0.0011256565733667179
-0.007956774219277873
5.936186714978753E-4
0.01023444852679356
-0.002583355976594426
-1.3370449063354606E-5
-0.001717648154316076
0.002152787394486211
0.0016892230528589014
-0.0011786513293479128
-2.063344435637715E-4
0.0012239469880643838
0.004738009497465612
-0.005811869970645311
5.143294179728031E-4
-0.0015238355926603386
6.851128955727148E-4
-0.003907170981983121
-0.0030650720497961137
-0.006423903109892937
-0.012187149376687079
-0.003973838772326266
0.003718059716095068
0.0035340734396624995
0.019369196666192412
0.00340156331138175
-0.005520493253459602
0.002243296143402018
8.720894046045924E-4
0.006919930245802064
-0.006297063183701046
0.005868925887599907
-0.007450437161547696
0.002579137526067976
-0.0019609004428086108
-0.0029872096030989503
-0.003759839699212786
0.0032447595170417287
0.005112775455220042
-0.0026432463193081235
-0.0066347314224886045
0.0015898239691343186
0.002050754611730099
0.012540030768040555
-0.001149656028611279
-0.003031268388645647
0.01735340085147885
-0.005993171138904074
-0.0032842138598631054
-0.0022371158392434642
-0.008073617172411951
-0.005002792333956507
0.003844419829658552
0.0026877708935384437
9.511609386727571E-4
0.00523332409604671
-0.0036961430499568015
-0.002528592389146267
0.002799522289917089
-0.005364586876385191
-4.981246789569349E-4
-4.0984773426944177E-4
-0.005111194938686725
-0.01528533148050748
-0.0038113852919618996
3.0828469122479163E-4
0.004848654839080702
0.02244931172474951
-0.0171807733794066
0.01020118029984629
-0.007389330693880369
0.010111351509728861
-1.4143688367163065E-5
-0.002616619356558436
0.005227979919711467
-0.005470501636798741
0.008056989399837011
0.005842043730302837
0.00247096714379591
6.308248407327355E-4
-0.004601149046263298
-1.1873664212780355E-4
0.0025187032418954036
-0.0051946113636122115
-1.6622300840773985E-4
-0.008426382881423944
0.00429895784441503
6.457786763403028E-5
-0.0026587622083154017
-0.0014272861037198936
0.0022076269151338757
0.02327386852855695
-0.00365833326308429
0.004841240724519746
0.0050765992281605055
-0.003994922280878055
-0.003298568844482208
0.00126420561098195
3.7833799583419925E-4
-0.0012705570347647521
-0.0011470415934387024
-0.0015652400351429119
0.0010735601335827294
5.839687435895691E-4
0.0017736377519066426
-7.015488165343919E-4
-0.0026685069085227164
9.83044133371802E-4
0.004537654291864701
-7.395407557055922E-4
0.003992500440779034
0.008142133672691898
0.014680663344384781
-0.001626330201723647
-0.006596420395744151
0.0011645927977061987
0.005286507859710854
-0.005738617481080066
0.00351296330028128
0.0017387881200032762
-0.0010515945418410055
0.0015959576991251279
0.0013619065322931778
-0.004160567947363636
-0.003921088746569046
8.969295662291099E-4
-0.001782615847661262
0.002599176785621049
9.091530114146984E-4
0.0010475765573711993
-1.928690169994418E-4
0.004495424369662437
-3.061751704694915E-4
-0.0023414534102044193
-0.0040643897647912874
 

Star-Dust

Expert
Licensed User
Longtime User
no, no ,
quello che voglio ottenere è la sequenza massima, non il totale dei negativi e positivi
per questo il quel test, non va bene.

se vuoi una lista piu lunga:
B4X:
-0.0013409230994231303
-0.007103566709727116
0.009590676908998619
-0.0034593596024513618
0.004021773310345589
0.0027129216935457556
-1.7405334261044736E-4
-0.002405930736686157
0.003179073403768218
-9.147470398277457E-4
0.005054354349112833
0.00464966499128372
-8.630156806791467E-4
-0.0116943088736291
-8.860843478819547E-4
0.0045429384691626495
0.0053727378611674315
-0.0014347973592360175
-0.006883152844772589
-0.006282717537744897
-0.0019734531430937174
-0.02687265134608241
-0.016088285507317335
-0.008202513657398991
-0.003882918940512625
3.2414724296403463E-4
0.00528893034542488
-0.0031649959913866432
-0.006502813675498764
-0.009813789050923782
0.004546048791875812
4.713020509308219E-4
0.0012141692882301491
0.0033169939038026897
-0.004389846283695764
-0.010626771409214308
0.006596808713674962
-1.259361251970681E-5
0.0043010060557382435
0.00202611258544505
-0.00798400741969707
0.003375968041489985
-0.0015783465475328606
0.0028699540275667346
0.008458261762680719
0.0015923801864186071
-0.0049864059431696806
-0.0023335608435616217
0.0013990979725719832
-0.0022848027730735243
-0.006827860437381261
0.005159138686762654
-0.004877362592393797
-0.023271968378796415
-0.0024586687449809075
0.0036210744615210455
-0.007698441124810218
0.004275792852922011
0.009156799948977001
0.007934450674422333
-0.00588672630788889
0.0020342481166191195
0.0033455896098830706
-0.021480660377358518
0.009765910277416578
-0.013731906889703605
0.0197523615586106
-0.003364877776949715
-0.006806770955872232
0.0016241628632067684
0.0035145102210918377
-0.0011256565733667179
-0.007956774219277873
5.936186714978753E-4
0.01023444852679356
-0.002583355976594426
-1.3370449063354606E-5
-0.001717648154316076
0.002152787394486211
0.0016892230528589014
-0.0011786513293479128
-2.063344435637715E-4
0.0012239469880643838
0.004738009497465612
-0.005811869970645311
5.143294179728031E-4
-0.0015238355926603386
6.851128955727148E-4
-0.003907170981983121
-0.0030650720497961137
-0.006423903109892937
-0.012187149376687079
-0.003973838772326266
0.003718059716095068
0.0035340734396624995
0.019369196666192412
0.00340156331138175
-0.005520493253459602
0.002243296143402018
8.720894046045924E-4
0.006919930245802064
-0.006297063183701046
0.005868925887599907
-0.007450437161547696
0.002579137526067976
-0.0019609004428086108
-0.0029872096030989503
-0.003759839699212786
0.0032447595170417287
0.005112775455220042
-0.0026432463193081235
-0.0066347314224886045
0.0015898239691343186
0.002050754611730099
0.012540030768040555
-0.001149656028611279
-0.003031268388645647
0.01735340085147885
-0.005993171138904074
-0.0032842138598631054
-0.0022371158392434642
-0.008073617172411951
-0.005002792333956507
0.003844419829658552
0.0026877708935384437
9.511609386727571E-4
0.00523332409604671
-0.0036961430499568015
-0.002528592389146267
0.002799522289917089
-0.005364586876385191
-4.981246789569349E-4
-4.0984773426944177E-4
-0.005111194938686725
-0.01528533148050748
-0.0038113852919618996
3.0828469122479163E-4
0.004848654839080702
0.02244931172474951
-0.0171807733794066
0.01020118029984629
-0.007389330693880369
0.010111351509728861
-1.4143688367163065E-5
-0.002616619356558436
0.005227979919711467
-0.005470501636798741
0.008056989399837011
0.005842043730302837
0.00247096714379591
6.308248407327355E-4
-0.004601149046263298
-1.1873664212780355E-4
0.0025187032418954036
-0.0051946113636122115
-1.6622300840773985E-4
-0.008426382881423944
0.00429895784441503
6.457786763403028E-5
-0.0026587622083154017
-0.0014272861037198936
0.0022076269151338757
0.02327386852855695
-0.00365833326308429
0.004841240724519746
0.0050765992281605055
-0.003994922280878055
-0.003298568844482208
0.00126420561098195
3.7833799583419925E-4
-0.0012705570347647521
-0.0011470415934387024
-0.0015652400351429119
0.0010735601335827294
5.839687435895691E-4
0.0017736377519066426
-7.015488165343919E-4
-0.0026685069085227164
9.83044133371802E-4
0.004537654291864701
-7.395407557055922E-4
0.003992500440779034
0.008142133672691898
0.014680663344384781
-0.001626330201723647
-0.006596420395744151
0.0011645927977061987
0.005286507859710854
-0.005738617481080066
0.00351296330028128
0.0017387881200032762
-0.0010515945418410055
0.0015959576991251279
0.0013619065322931778
-0.004160567947363636
-0.003921088746569046
8.969295662291099E-4
-0.001782615847661262
0.002599176785621049
9.091530114146984E-4
0.0010475765573711993
-1.928690169994418E-4
0.004495424369662437
-3.061751704694915E-4
-0.0023414534102044193
-0.0040643897647912874
Adesso ho capito e posso rispondere alla tua domanda.
Si mi è successa una cosa simile
 

udg

Expert
Licensed User
Longtime User
Ah, ora mi è chiaro.
Quindi ad ogni cambio positivo/negativo (o viceversa) interrompi il conteggio e verifichi se è maggiore del max dello stesso tipo che avevi già rilevato
In pratica vuoi sapere le sequenze più lunghe di positivi e enagativi.
Se @Star-Dust ha già del codice e lo pubblica, usa quello; altrimenti dopo pranzo ci guardo..
 

Star-Dust

Expert
Licensed User
Longtime User
Ah, ora mi è chiaro.
Quindi ad ogni cambio positivo/negativo (o viceversa) interrompi il conteggio e verifichi se è maggiore del max dello stesso tipo che avevi già rilevato
In pratica vuoi sapere le sequenze più lunghe di positivi e enagativi.
Se @Star-Dust ha già del codice e lo pubblica, usa quello; altrimenti dopo pranzo ci guardo..
Aspetto il tuo, io vado a rilassarmi
 

udg

Expert
Licensed User
Longtime User
Ok. Per ora sono ai fornelli..
Non trattenete il fiato.. :)
Bye
 

Star-Dust

Expert
Licensed User
Longtime User
Va bene, ho capito siete tirchi di sorgenti, ha ragione @Xfood.... ecco a voi
B4X:
For i=0 To L.Size-1
        Dim F As Float = L.Get(i)
        If L<0 Then
            SeqNegativi=SeqNegativi+1
            SeqPositivi=0
            MaxNegativi=Max(MaxNegativi,SeqNegativi)
        Else if L>0 Then
            SeqPositivi=SeqPositivi+1
            SeqNegativi=0
            MaxPositivi=Max(MaxPositivi,SeqPositivi)
        End If
    Next
    
    Log(MaxPositivi)
    Log(MaxNegativi)
 

LucaMs

Expert
Licensed User
Longtime User
Ah, quanto pare solo l'autore del thread può segnare un post come "la" soluzione.

C'è da vedere il caso di dato esattamente zero.
Non è esatto, è che il sito è "razzista" 😄

Forum italiano:
1644937518670.png


Forum "internazionale":
1644937557089.png
 
Top