JavaScript 的一个好的数学集合实现在哪里?它应该包括对交集、并集、补集和(对于加分)笛卡尔积的有效实现。
不,这不是家庭作业。我有一个 yubikey,它是一个 USB 键盘,可以键入从 16 个键码中选择的序列以键入 128 位一次性密码 (otp)。为了使其更有用,软件应根据生成的字符检测键盘布局,并将这些字符映射回它们在“us”布局中的样子,以便与现有后端兼容。
所以我有 93 个不同的 16 个字符序列,代表 yubikey 可以在 430 种键盘布局中输入的所有内容。(为此目的,许多布局都是相同的。)特定 otp 的可能映射是每个 16 字符序列,其中包含 otp 中的每个字符。
为了有效地找到这一点,我使用反向索引将每个可能的字符映射到使用该字符的键盘布局列表。答案是 otp 中每个唯一字符的反向索引的每个条目的交集。这几乎总是以恰好 1 个元素结束。
用一个好的实现来编写这个跨浏览器会更容易Set()
。