Kiko escribió:
> Hola a todos.
>
> Estoy intentando buscar los indices de un subconjunto dentro de un
> conjunto y quiero saber si existe algo más eficiente que lo que he
> pensado.
>
> Me explico, por ejemplo, yo tengo:
>
> conjunto = range(1000, 1100, 1)
> subconjunto = range(1000, 1100, 3)
>
> Q
Te escribo a tí directamente porque la lista parece que no me acepta!!
Si los elementos de subconjunto están ordenados dentro de conjunto, la
búsqueda es O(n):
si sabes que los elementos del subconjunto están ordenados dentro del
conjunto, no necesitas buscar en toda la lista cada vez,
Daniel Garcia Moreno escribió:
>
> Según mis conocimientos en computación, esta búsqueda es de orden n^2.
> Si el primer conjunto está ordenado, puede llegar a ser de orden
> n*log(n) puesto que puedes hacer una búsqueda binaria en lugar de
> conjunto.index(valor). Y creo que no vas a poder optimiz
Pablo Angulo escribió:
> indices = []
> ultimo = 0
> for v in subconjunto:
> ultimo += conjunto[ultimo:].index(v)
> indices.append(ultimo)
>
> [conjunto[j] for j in indices]==subconjunto
>
>
Lamento ser pesado, pero hay que hacer un cambio:
indices = []
ulti
Daniel Garcia Moreno escribió:
>
>> Si la lista grande tiene N elementos y la pequeña M, puedes elegir entre
>> O(Mlog(N)), usando bisect. o O(N), con la técnica que te decía antes.
>>
> O puedes combinar las dos, buscar desde el último indice en adelante
> pero hacerlo con busqueda binaria.
Y
Olemis Lang (Simelix) escribió:
> Aquí por ejemplo hay un caso que ilustra el hecho de no confiar
> demasiado en las estimaciones teóricas . Las estimaciones de Pablo et
> al se pueden ver afectadas por la eficiencia de la implementación del
> método index (el cual no me parece que sea muy O(1) que
Kiko escribió:
> tiempo de la primera opción: 0.0149998664856
> for i in subconjunto:
> ultimo = conjunto.index(i, ultimo+1)
> indices.append(ultimo)
> Los primero 25 valores de indices = [0, 3, 6, 9, 12, 15, 18, 21, 24,
> 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72]
>
>
Olemis Lang (Simelix) escribió:
> Si no es O(1) entonces sospecho que en
>
> {{{
> #!python
>
> ultimo = -1
> for v in subconjunto:
> ultimo = conjunto.index(v, ultimo+1)
> yield ultimo
> }}}
>
> hay un ciclo `for` explícito más un ciclo implícito `index`
No lo sospeches: tiene que hab
Olemis Lang (Simelix) escribió:
> No me parece que `index` recuerde el último índice de la lista (no
> estamos hablando de iteradores ;o) entre dos llamadas diferentes para
> recomenzar la búsqueda de un nuevo elemento (¿ o es que funciona así
> internamente ?) ...
Normalmente, index comienza desd
lopz escribió:
> O podrías usar software especial para estos menesteres que igual hay variedad.
>
>
"motion" es muy fácil de configurar. Básicamente "apt-get install
motion", y ya tienes un miniservidor web con imágenes de la webcam.
Además sólo actualiza la imagen si detecta movimiento.
__
Puedes sobreescribir el método __getattribute__ de tu clase:
def__getattribute__(self, name):
return xml_none(busqueda_xml ('usuario',name))
Estarías usando los mismos nombres para las variables que para las
columnas de la tabla. Tal y como te lo cuento, harías demasiadas
consultas a la base
Otra opción más pedestre: genera el codigo python con un script python,
copias y pegas:
for nombre_var in nombres_variables:
nombre_col = nombres_variables[nombre_var]
print '%s = xml_none(busqueda_xml ('usuario', %s))'%(nombre_var,
nombre_col)
monoBOT escribió:
>
> Seguro que existen m
12 matches
Mail list logo