» »

Pomoč pri izdelavi funkcije

Pomoč pri izdelavi funkcije

Highlag ::

S kontrolerjem izvajam meritve. Glede na izmerjene vrednosti pa bi rad ujel zadnjo veljavno meritev, ki bi jo prikazoval do naslednje veljavne meritve.

Recimo da so izmerjene vrednosti takšne:
0, 1000, 1000, 995, 994, 990, 980, 970, 200, 100, 50, 50, 1000, 1000, 995, 990, 980, 970, 960, 200, 100, 50, 50, 1000 ....

Vrednost naraste iz ničle na neko vrednost, ki počasi pada, nato pa se zgodi oster padec. Čez čas vrednost ponovno naraste, ter počasi pada dokler ostro ne pade......

Torej izpis glede na zgoraj napisane dane podatke bi želel takšen:
0, 1000, 1000, 995, 994, 990, 980, 970, 970, 970, 970, 970, 1000, 1000, 995, 990, 980, 970, 960, 960, 960, 960, 960, 1000

Zadnja veljavna meritev je v prvem primeru 970, ker je naslednja več kot 1/2 manjša
Ko vrednost iz 50 skoči na 1000 je to nova veljavna meritev. Vrednost spet počasi pada do 960, ki je druga zadnja veljavna meritev.
Vrednosti, ki so prenizke je lahko poljubno veliko. V seznamu so samo 4.

Podatki se trenutno shranjujejo v array, ki je dolg trenutno 5 mest, ko se zadnje mesto zapolni se prepisuje od začetka.

Kakšna ideja kako pristopiti k problemu?
Never trust a computer you can't throw out a window

Randomness ::

xs = [0, 1000, 1000, 995, 994, 990, 980, 970, 200, 100, 50, 50, 1000, 1000, 995, 990, 980, 970, 960, 200, 100, 50, 50, 1000]

# filtriraj
for i in range(1, len(xs)):
    k = xs[i] / (xs[i-1] + 0.0001)
    if k < 0.5:
        xs[i] = xs[i-1]

for i in range(len(xs)):
    print(xs[i])


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kako do hitrega interneta

Oddelek: Omrežja in internet
425797 (3922) jb_j
»

GTX770 vs GTX970 (strani: 1 2 )

Oddelek: Strojna oprema
574212 (2775) abazuu
»

Java - prve števke števila

Oddelek: Programiranje
81432 (1158) technolog
»

Kruskalov algoritem težave pri implementaciji

Oddelek: Programiranje
51615 (1389) zacetnik11

Več podobnih tem