问题标签 [bijection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
75 浏览

javascript - 从 number 返回一个唯一且已排序的字符串

我有一个以 10 为底的输入:1, 2, 3, 52, 53 ...

我想将数字转换为用字母构建的a字符串z。对于每个数字,应该只有一个字母组合,并且应该按字母顺序排序。

目前我构建了这个片段:

离正确答案不远,但它仍然是错误的。

该函数的正确形式是什么?

0 投票
1 回答
110 浏览

c++ - C++中类矩阵结构的基于索引的访问

我在此格式下 的两组编码(不相关:Unicode 和 GB18030 )之间有一个映射 Nx2:警告:巨大的 XML,如果连接速度慢,请不要打开:http: //source.icu-project.org/repos/ icu/data/trunk/charset/data/xml/gb-18030-2000.xml

快照:

我想将 b 值(右列)保存在数据结构中,并使用基于 a 值(左列)的索引直接访问它们(不搜索)。

例子:

我可以将这些元素存储在这样的数据结构中:

无符号短 *my_page[256] = {my_00,my_01, ....., my_ff}

,其中元素的定义如下:

静态无符号短 my_00[256] 等

. 所以基本上是一个矩阵 => 256x256 = 65536 个可用元素的矩阵。

对于具有较少元素和不同值的其他编码(例如中文 Big5、日文 Shift、韩文 KSC 等),我可以使用这样的双射函数访问元素:

element = my_page[(unicode[i]>>8)&0x00FF][unicode[i]&0x00FF];其中unicode[i] 填充了映射中的类似 a 的元素(如上所述)。我如何生成和填充 my_page 结构是类似的。对于工作编码,我需要存储大约 7000 个字符(并且它们存储在 my_page 中的唯一位置)。

问题来自 GB18030 编码,试图在 my_page 中存储 30861 个元素(65536 个元素)。我正在尝试使用相同的双射函数来填充(然后类似地访问)my_page 结构,但由于访问模式不返回唯一结果而失败。

例如:对于 unicode 值,由于ii+1my_page[(unicode[i]>>8)&0x00FF][unicode[i]&0x00FF]的索引可以相同,因此可以访问超过 1 个元素 。您是否知道另一种访问/填充 my_page 结构中的元素的方法,该方法仅基于我尝试做的预先计算的索引?

我假设我必须使用类似于伪散列函数的东西,它返回一系列值 VRange ,并且基于一组规则,我可以从范围 VRange 中提取 my_page[256][256] 的整数索引。

如果您有任何建议,请告诉我:)

谢谢 !

0 投票
3 回答
95 浏览

algorithm - 什么函数伪随机地重新排序 N 个项目?

有自然数 1 到 N(N 大约是 1e7),我梦想一个函数能够以某种方式对集合进行重新排序,一组相当短的参数定义,与值的范围相比。

因为N = 2^i - 1这可能只是位重新排序,因此,一组唯一的i0..i 定义了突变。

我正在寻找一种同样美丽的方式,适用于任意 N。


位重新排序示例。8 个值:0..7用 3 位编码:000 – 111. 为了重新排序该集合,我存储了每个位的新位置。取一个数组[0,1,2]并随机重新排序,然后将结果存储为置换键。即将[1,0,2]重新排序 8 个值,如下所示:

0 投票
1 回答
885 浏览

graph-algorithm - 如何从给定的同构图中找到双射?

假设给定的两个多重图是同构的。
如何找到它们之间的双射?

我知道很难找到同构图,因为它是一个 NP 问题。
但是如果它们已经是同构图呢?

来自互联网的许多解决同构问题的资源建议先找到最短路径,然后再找到规范形式。在我实施测试之后,证明图是同构的似乎没有必要且效率低下。但是如果没有这些功能,我找不到任何其他解决方案来分离双射和同构。

笔记:

  1. 参考:http ://www.dharwadker.org/tevet/isomorphism/
  2. 多图允许自循环和多边。
0 投票
2 回答
259 浏览

scala - Scala 测试一个 Map 是双射的

什么是测试 a 是否Map[A,B]是双射的简单方法,即对于

我们有它m1是双射的,不像m2.

0 投票
2 回答
718 浏览

java - 在Java中将字符串转换为可逆的东西

我有很多 url 作为 HBase 表中的键。由于它们“全部”以 开头http://,因此 Hbase 将它们放在同一个节点中。因此,我以 +100% 的节点和另一个空闲的节点结束。

所以,我需要将 url 映射到类似哈希但可逆的东西。在 JAVA8 中是否有任何简单、标准和快速的方法来做到这一点。

我寻找前缀的随机(线性)分布。

笔记:

  • 反转 url 并不有趣,因为很多 url 都/ ? =以不平衡分布的风险结尾。

  • 我不需要加密,但我可以接受。

  • 我不寻找压缩,但如果可能的话,它是受欢迎的:)

谢谢,科斯汀

0 投票
2 回答
308 浏览

parsing - 是否有一种既定的方法来编写可以重建其确切输入的解析器?

假设我想解析语言X的文件。真的,我只对其中的一小部分信息感兴趣。为此目的,在 Haskell 的众多 eDSL 之一中编写解析器很容易(例如 Megaparsec)。

这很容易产生一个函数getFoo :: Text -> Maybe Foo

但是现在我也想修改信息的来源Foo,即基本上我要实现

与属性

可以通过将解析器的结果更改为类似镜头的东西来做到这一点

但这使得定义变得更加麻烦——我不能再掩盖不相关的信息,而是需要存储每个子解析的匹配string并手动重新组合它。

这可以通过将字符串重新组合保持在StateT解析器 monad 周围的层中来实现某种程度的自动化,但我不能只使用现有的原始解析器。

这个问题有现成的解决方案吗?

0 投票
2 回答
1515 浏览

serialization - 双射 - Java Avro 序列化

我正在寻找一个示例来对 AvroSpecificRecordBase对象进行类似于 a 的Bijection,GenericRecordBase或者是否有一种更简单的方法可以将该AvroSerializer类用作 Kafka 键和值序列化程序。

0 投票
1 回答
278 浏览

boolean - 在 Agda 中定义双射

问题是我们如何在 agda 中定义双射?定义:

我们知道

对于数字。同样,我们有

其中 A ∼= B 表示 A 和 B 之间存在双射,即存在f : A → Bg : B → A互为逆元,即g (f x) = x对所有人x : Af (g y) = y对所有人y : B

在 Agda 中实现这些双射!

所以我开始Bool为它定义一些函数:

但我坚持双射,完全不知道如何解决它。

0 投票
0 回答
879 浏览

java - 无法使用 avro:Java 在 kafka spark 流应用程序中反转 twitter 双射异常

我一直在学习使用火花流从 kafka 生成和使用消息的教程。这个想法是产生以 avro 格式序列化的简单消息。反序列化来自 avro 格式的消息并使用 spark 流式处理。由于双射 api 引发 Failed to Invert 异常,我无法使用该消息。

制片人:

消费者:

例外: