Algorithm 检查有效组合的算法

Algorithm 检查有效组合的算法,algorithm,Algorithm,我必须检查软件与系统(操作系统、设备、浏览器、客户端)的兼容性。仅支持部分系统 我们有兼容系统的所有4个参数组合。给定某些系统的参数,我必须检查其兼容性 我能想到的最好情况是,我分配了不同的操作系统值0-9,设备的值为100200,…900,同样适用于浏览器10002000,…9000和客户端。维护所有有效添加的缓存,并从该缓存中检查给定系统 有没有更好的方法?在上述方法中,我可能存在可伸缩性问题。向我推荐一些类似的算法。使用哈希表。实际上,每种语言都内置了它们以及将它们序列化为文件的方法。您可

我必须检查软件与系统(操作系统、设备、浏览器、客户端)的兼容性。仅支持部分系统

我们有兼容系统的所有4个参数组合。给定某些系统的参数,我必须检查其兼容性

我能想到的最好情况是,我分配了不同的操作系统值0-9,设备的值为100200,…900,同样适用于浏览器10002000,…9000和客户端。维护所有有效添加的缓存,并从该缓存中检查给定系统


有没有更好的方法?在上述方法中,我可能存在可伸缩性问题。向我推荐一些类似的算法。

使用哈希表。实际上,每种语言都内置了它们以及将它们序列化为文件的方法。

您可以创建一些表示类实例的对象,然后对该对象进行散列,并将散列与有效样本的散列进行比较。这应该可以解决您的可伸缩性问题。

为了绝对确保某些组合会起作用,您必须对其进行测试。如果要检查的组合太多,以至于无法检查每个组合,则可以对可能出现的错误进行假设,并找到在这些假设下为您提供最有用测试的方案


如果您认为只要结合两种选择就可以复制bug(例如,无论浏览器和客户端如何,Windows+设备总是会带来麻烦)然后,您可以找到一个方案,用于测试两个选项的每个组合,而不必测试所有选项的每个组合-请参见

什么可伸缩性问题?假设操作系统计数超过10,则我必须相应地更改每个选项的值。或者,您可以根据每个显式组合来表示白名单,或者你用规则来表达它。没有一种算法可以先验地确定“兼容性”。