Arrays 如何快速比较一组布尔值和许多其他布尔值(顺序问题)?

Arrays 如何快速比较一组布尔值和许多其他布尔值(顺序问题)?,arrays,math,comparison,set,Arrays,Math,Comparison,Set,我在业余时间做的一个项目遇到了问题。我在使用谷歌AppEngine(java版本),但是这个问题不是针对那个平台的,我会考虑其他语言/平台,如果他们能解决这个问题。 以下说明了问题: 假设我有一个包含数千个配方的数据存储,以及每个配方的成分。(为了这个例子,忘记测量。)我希望能够输入我手头上的配料列表,然后快速检索所有我至少有XX%配料(比如75%)的配方。我愿意牺牲一些准确性和一些结果来换取速度,但我确实想要一定程度的准确性。在得到“快速结果”后,我可以进行更彻底的比较 我试图找到一个解决方案

我在业余时间做的一个项目遇到了问题。我在使用谷歌AppEngine(java版本),但是这个问题不是针对那个平台的,我会考虑其他语言/平台,如果他们能解决这个问题。 以下说明了问题:

假设我有一个包含数千个配方的数据存储,以及每个配方的成分。(为了这个例子,忘记测量。)我希望能够输入我手头上的配料列表,然后快速检索所有我至少有XX%配料(比如75%)的配方。我愿意牺牲一些准确性和一些结果来换取速度,但我确实想要一定程度的准确性。在得到“快速结果”后,我可以进行更彻底的比较

我试图找到一个解决方案:通过分析食谱数据库,我编制了一份200种常见食物成分(鸡蛋、面粉、盐、糖、迷迭香等)的清单。几乎所有配方成分都包含在此主列表中:

Common Food Ingredients: [ eggs , flour , salt , sugar , cinnamon ... ]
My ingredients on hand: [ F , F , T , T , F ... ]
然后,我浏览每个食谱,并将配料与主列表进行比较,最后得出每个食谱包含200个布尔值:

Recipe #106: [ T , T , F , T , F ... ]
Recipe #107: [ F , T , T , T , F ... ]
我会将这些信息与食谱一起存储。(到目前为止,这都是数据准备工作,我在世界上所有的时间都在做。)

现在,我输入我手头的配料清单。我将与主列表进行相同的比较:

Common Food Ingredients: [ eggs , flour , salt , sugar , cinnamon ... ]
My ingredients on hand: [ F , F , T , T , F ... ]
这就是我被困的地方。我如何快速地将这组布尔值与食谱集进行比较,以便我能够确定至少有75%成分的食谱

或者(这将是圣杯),在数据准备过程中,不是在每个配方中存储布尔值集本身,而是有一个我可以执行的计算,它会给我一个单独的值,我可以稍后过滤掉吗?(例如,“从主列表布尔度量使用的配方中选择*


将每个配料存储为一个位,使用您拥有的配料进行AND运算,然后根据基数进行过滤()

这样做的困难在于,我必须从数据存储中检索每个配方的位集(其中我有数千个并且还在增长),然后在一个循环中,将每种成分与我拥有的成分比特集进行比较。我认为这可能是性能密集型的,具体取决于我有多少食谱。