tengo varias matrices con cerca de 100 valores posibles, es decir:búsqueda booleana en una matriz
a[0] = (a, b, c, d)
a[1] = (a, e)
a[2] = (d, f, g)
quiero volver rápidamente que arrays contiene (A || B) & & (d || e)
en este ejemplo, 0 y 1
Estaba pensando en operaciones bit a bit ... como representar "abcd" por "1111"; "anuncio" por "1001", y así sucesivamente. Entonces podría resolver el "O" con solo un O bit a bit, y luego comprobar si ambos son distintos de cero
¿alguien puede pensar en una solución mejor? este no es muy práctico ya que no parece ser muy escalable
¿Hay algún DBMS que pueda hacer eso rápidamente? Intenté con mongodb, pero parece que todavía no agregaron la función "$ and" (el doc dice que está en la versión 1.9.1, pero solo puedo descargar 1.9.0, y no es estable de todos modos)
I supongamos que es una "búsqueda booleana", similar a lo que Google hace todo el tiempo ... así que supongo que hay una mejor manera (quizás no tan rápido, pero más escalable) que eso
Si sus matrices solo habrán topado con 100 valores posibles, la solución bit a bit en realidad parece bastante buena. –
Como siempre, en la carrera de velocidad de memoria, si puede permitirse duplicar su base de datos, se vuelve trivial (al menos conceptualmente). Y afirmó que "solo" tenía 1 millón de matriz con 80 valores como máximo. Entonces, simplemente construye 80 matrices donde la primera contiene el índice de las matrices que contienen a, etc ... Para ser honesto, supongo que trabajar con la lista de enteros será más rápido que iterar varias veces sobre "representaciones bit a bit" – Fezvez