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

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
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
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)
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…