[Python] Generalizzando: algoritmi di calcolo

Marco Beri marcoberi a gmail.com
Gio 22 Ott 2009 02:10:22 CEST


2009/10/22 Michele <michele a nectarine.it>

> 2009/10/19 Marco Beri <marcoberi a gmail.com>:
> > Questa versione non inserisce l'ultimo intervallo spurio da 0 eventi
> attivi:
> >
>
> Ancora due domande:
> - volendo calcolare s1 or s2, come potrei fare?
>

Non ho capito la domanda, s1 e s2 non sono forse i dati di input?


> - inoltre: supponiamo che io ho un istante di termine per entrambi
> s1ev e s2ev e lo chiamo END.
> Quindi, nella conta degli eventi, devo inserire anche l'istante
> dall'ultimo evento fino a END. Come lo posso fare?
>

s2ev = [(9154, 9307), (9340, 10442), (87361, 98214)]

starts = sorted(s[0] for s in s1ev + s2ev)
ends = sorted(s[1] for s in s1ev + s2ev)

END = 99999999
actives = [[] for x in range(3)]
actives[0] = [[0, END]]

actives_count = 0
while ends:
    if starts and starts[0] < ends[0]:
        x = starts.pop(0)
        inc = 1
    else:
        x = ends.pop(0)
        inc = -1
    actives[actives_count][-1][1] = x
    actives_count += inc
    actives[actives_count].append([x, END])

Grazie
>

Prego.

-- 
http://thinkcode.tv - Prossimamente su questi schermi
http://beri.it - Blog di una testina di vitello
http://stacktrace.it - Aperiodico di resistenza informatica
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20091022/d9c091a4/attachment.htm 


Maggiori informazioni sulla lista Python