JavaScript 中什么是好的数学集合实现?

2024-01-09

哪里有一个好的 JavaScript 数学集合实现?它应该包括交集、并集、补集和(奖励点)笛卡尔积的有效实现。

不,这不是家庭作业。我有一个 yubikey,它是一个 USB 键盘,可以输入从 16 个键码中选择的序列来输入 128 位一次性密码 (otp)。为了使其更有用,软件应根据生成的字符检测键盘布局,并将这些字符映射回“us”布局中的内容,以便与现有后端兼容。

因此,我有 93 个不同的 16 个字符序列,代表 yubikey 在 430 种键盘布局中的每一种中可以输入的所有内容。 (为此目的,许多布局都是相同的。)特定 otp 的可能映射是包含 otp 中每个字符的每个 16 个字符序列。

为了有效地找到这一点,我使用反向索引将每个可能的字符映射到使用该字符的键盘布局列表。答案是 otp 中每个唯一字符的反向索引的每个条目的交集。这几乎总是以恰好 1 个元素结束。

通过良好的实现来编写这个跨浏览器会更容易Set().

到目前为止的代码位于http://dingoskidneys.com/~dholth/yubikey/ http://dingoskidneys.com/~dholth/yubikey/


通过使用jPaq http://jpaq.org/或另一个实现 Array.prototype.reduce 和 Array.prototype.forEach 函数的 JavaScript 库,您可以创建接受两个或多个数组的笛卡尔积函数。以下是计算两个或多个数组的笛卡尔积的函数的代码:

function cartesianProductOf() {
  return Array.prototype.reduce.call(arguments, function(a, b) {
    var ret = [];
    a.forEach(function(a) {
      b.forEach(function(b) {
        ret.push(a.concat([b]));
      });
    });
    return ret;
  }, [[]]);
}

就其在库中而言,我愿意接受有关函数命名的建议,以便我可以将其添加到jPaq http://jpaq.org/。顺便说一句,为了不抄袭,我确实想到了使用reduce from这个帖子 https://stackoverflow.com/questions/4796678/javascript-golf-cartesian-product/4797658#4797658.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中什么是好的数学集合实现? 的相关文章

  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • Twitter 嵌入时间轴小部件

    我继续下载http platform twitter com widgets js http platform twitter com widgets js And the http platform twitter com embed t
  • 列出所有 k 元组,其条目总和为 n,忽略旋转

    有没有一种有效的算法来查找所有序列k总和为的非负整数n 同时避免旋转 如果可能的话 完全避免 顺序很重要 但对于我正在解决的问题来说 轮换是多余的 例如 与k 3 和n 3 我想要得到一个如下所示的列表 3 0 0 2 1 0 2 0 1
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 单击列表时使用 bootstrap Dropdown 防止下拉菜单消失

    我正在使用使用引导下拉菜单 http twitter github com bootstrap javascript html dropdowns生成下拉菜单 我想防止点击菜单时菜单消失 我已经实现了以下代码 但它不起作用 知道如何修复它吗
  • AngularJS - 设置下拉列表的选定值不起作用

    我在这里复制了我的问题 http jsfiddle net U3pVM 2840 http jsfiddle net U3pVM 2840 正如标题所示 我无法设置使用 ng options 填充的选择的选定值 我已经搜索并尝试了我找到的所
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 为什么需要使用 EntryPoint 属性定义 DLLImport

    在经历的同时SWig http www swig org 生成的包装器中 我发现 PInvoke 没有定义任何入口点 但有些地方确实有入口点 那么它们之间有什么区别呢 什么时候需要定义 EntryPoint 什么时候不需要 定义无Entry
  • 按钮图像距离按钮顶部太远;太靠近按钮底部

    我正在 VB NET 2005 中开发 Windows 窗体 我想要一些带有图像的按钮 我说的是普通的 普通的 System Windows Forms Button 我已按照我想要的方式设置了所有内容 但图像在按钮上显示得太低 因此图标的
  • 如何打包不是使用 vagrant up 命令创建的现有虚拟机?

    我安装了 VirtualBox 然后在其中安装了 Ubuntu 12 10 Server Base OS 我在里面安装了各种php包和其他包 我的朋友推荐我使用 Vagrant 这样我就可以轻松地与我的队友分享我的设置 因为我当前的 Vir
  • pygame全屏模式退出

    我正在运行这个小程序 它以全屏模式将图像加载到屏幕上 但是一旦加载 程序将不会通过任何组合键退出 我最终不得不重置计算机才能完成我正在做的任何其他事情 import pygame pygame init WIDTH 1366 HEIGHT
  • 获取由 css column-width 创建的列数[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Javascript 中获取 css3 多列计数 https stackoverflow com questions 6989306 how to get css3 multi column
  • 为什么ArrayList类的removeRange方法不起作用? [复制]

    这个问题在这里已经有答案了 我正在尝试使用removeRange从中删除某些元素的方法ArrayList 我从这里开始了解这个方法 http docs oracle com javase 7 docs api java util Array
  • 如何组织嵌入式项目中的代码?

    高度嵌入式 有限的代码和 RAM 大小 项目给代码组织带来了独特的挑战 我见过很多完全没有组织的项目 主要是由硬件工程师完成的 根据我的经验 他们通常不关心代码的非功能方面 但是 我一直在尝试相应地组织我的代码 硬件特定 驱动程序 初始化
  • 文本浮动在图像旁边的块中

    我想实现以下定位 两个不同的文本 块中 浮动 内嵌在图像旁边 div 内的所有内容 我一直在尝试使用不同的显示设置 块 内联文本等 但它仍然无法正常工作 HTML div class res img src gt span TITLEe s
  • 在 MATLAB 中序列化多维数组以进行数据库插入的最简单方法?

    我似乎找不到任何用于序列化数据的标准函数 我有一个大型 128x51 数组 需要将其存储在单个数据库字段中 如果没有某种序列化 事情就会出现问题 解决这个问题的最好方法是什么 我不太使用matlab 所以我不熟悉标准程序 一种可能性是使用T
  • 使用 openrowset 将 Excel 文件读入临时表;我如何引用该表?

    我正在尝试编写一个存储过程 它将 Excel 文件读入临时表 然后处理该表中的一些数据 然后将该表中选定的行插入到永久表中 所以 它是这样开始的 SET SQL select into mytemptable FROM OPENROWSET
  • 单击“模块”选项卡时,是否可以让 Doxygen 直接显示唯一的模块?

    考虑以下单文件项目 defgroup api Public API This is foo and bar together ingroup api void foobar Nothing here to see 在包含该文件的目录中 我运
  • 在循环中延迟释放资源的正确方法?

    我需要在循环中对数据库进行 SQL 查询 for rows Next fields err db Query if err nil defer fields Close do something with fields 什么会更好 保持原样
  • WPF MVVM 文本框验证

    我正在使用 MVVM 创建 WPF 应用程序 我有一个文本框 它绑定到我的 ViewModel 类型中的一个属性double默认值为 0 0 如果我现在在文本框中输入文本值 例如 abc 则在失去焦点时 文本框会突出显示 指示值不正确 但是
  • 正则表达式查找 = 之后的字符串

    我对正则表达式真的很陌生 我一直在四处寻找答案 但要么它不起作用 要么我遇到某种错误 所以我会尝试问这个问题 希望有人可以指导我 我有一个看起来像这样的字符串 str 汽车 品牌 萨博 车轮 4 我不知道你是否可以直接获得几个不同的匹配 或
  • Excel 2007 PageSetup.FitToPagesWide 问题

    我一直在尝试使用 C 在 Excel 2007 的 Microsoft Visual Studio 项目中设置 Excel 页面的页面缩放比例 代码看起来像这样 private void Sheet1 Startup object send
  • Java TemporaryFolder getRoot() 异常

    我正在尝试在我的 junit 之一中使用 org junit rules TemporaryFolder 来测试文件 I O 我已经这样初始化它 Code Rule public TemporaryFolder temporaryFolde
  • 如何将行名称转换为第一列?

    我有一个像这样的数据框 df VALUE ABS CALL DETECTION P VALUE 1007 s at 957 729231881542 P 0 00486279317241156 1053 at 320 63270128336
  • Google App Engine Jinja2 和 Markupsafe

    谷歌表示 MarkupSafe 让 jina2 运行得更快here https developers google com appengine docs python tools libraries27 我已将其添加到我的 Yaml 文件中
  • 检查文件是否已经打开

    我需要编写一个自定义批处理文件重命名器 我已经完成了大部分工作 只是我不知道如何检查文件是否已经打开 我只是使用java io File包里有一个canWrite 方法 但这似乎并没有测试该文件是否正在被另一个程序使用 关于如何使这项工作有
  • JavaScript 中什么是好的数学集合实现?

    哪里有一个好的 JavaScript 数学集合实现 它应该包括交集 并集 补集和 奖励点 笛卡尔积的有效实现 不 这不是家庭作业 我有一个 yubikey 它是一个 USB 键盘 可以输入从 16 个键码中选择的序列来输入 128 位一次性