问题标签 [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.
javascript - 从 number 返回一个唯一且已排序的字符串
我有一个以 10 为底的输入:1, 2, 3, 52, 53 ...
我想将数字转换为用字母构建的a
字符串z
。对于每个数字,应该只有一个字母组合,并且应该按字母顺序排序。
目前我构建了这个片段:
离正确答案不远,但它仍然是错误的。
该函数的正确形式是什么?
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 值,由于i和i+1my_page[(unicode[i]>>8)&0x00FF][unicode[i]&0x00FF]
的索引可以相同,因此可以访问超过 1 个元素
。您是否知道另一种访问/填充 my_page 结构中的元素的方法,该方法仅基于我尝试做的预先计算的索引?
我假设我必须使用类似于伪散列函数的东西,它返回一系列值 VRange ,并且基于一组规则,我可以从范围 VRange 中提取 my_page[256][256] 的整数索引。
如果您有任何建议,请告诉我:)
谢谢 !
algorithm - 什么函数伪随机地重新排序 N 个项目?
有自然数 1 到 N(N 大约是 1e7),我梦想一个函数能够以某种方式对集合进行重新排序,由一组相当短的参数定义,与值的范围相比。
因为N = 2^i - 1
这可能只是位重新排序,因此,一组唯一的i
值0..i
定义了突变。
我正在寻找一种同样美丽的方式,适用于任意 N。
位重新排序示例。8 个值:0..7
用 3 位编码:000 – 111
. 为了重新排序该集合,我存储了每个位的新位置。取一个数组[0,1,2]
并随机重新排序,然后将结果存储为置换键。即将[1,0,2]
重新排序 8 个值,如下所示:
graph-algorithm - 如何从给定的同构图中找到双射?
假设给定的两个多重图是同构的。
如何找到它们之间的双射?
我知道很难找到同构图,因为它是一个 NP 问题。
但是如果它们已经是同构图呢?
来自互联网的许多解决同构问题的资源建议先找到最短路径,然后再找到规范形式。在我实施测试之后,证明图是同构的似乎没有必要且效率低下。但是如果没有这些功能,我找不到任何其他解决方案来分离双射和同构。
笔记:
- 参考:http ://www.dharwadker.org/tevet/isomorphism/
- 多图允许自循环和多边。
scala - Scala 测试一个 Map 是双射的
什么是测试 a 是否Map[A,B]
是双射的简单方法,即对于
我们有它m1
是双射的,不像m2
.
java - 在Java中将字符串转换为可逆的东西
我有很多 url 作为 HBase 表中的键。由于它们“全部”以 开头http://
,因此 Hbase 将它们放在同一个节点中。因此,我以 +100% 的节点和另一个空闲的节点结束。
所以,我需要将 url 映射到类似哈希但可逆的东西。在 JAVA8 中是否有任何简单、标准和快速的方法来做到这一点。
我寻找前缀的随机(线性)分布。
笔记:
反转 url 并不有趣,因为很多 url 都
/ ? =
以不平衡分布的风险结尾。我不需要加密,但我可以接受。
我不寻找压缩,但如果可能的话,它是受欢迎的:)
谢谢,科斯汀
parsing - 是否有一种既定的方法来编写可以重建其确切输入的解析器?
假设我想解析语言X的文件。真的,我只对其中的一小部分信息感兴趣。为此目的,在 Haskell 的众多 eDSL 之一中编写解析器很容易(例如 Megaparsec)。
这很容易产生一个函数getFoo :: Text -> Maybe Foo
。
但是现在我也想修改信息的来源Foo
,即基本上我要实现
与属性
可以通过将解析器的结果更改为类似镜头的东西来做到这一点
但这使得定义变得更加麻烦——我不能再掩盖不相关的信息,而是需要存储每个子解析的匹配string
并手动重新组合它。
这可以通过将字符串重新组合保持在StateT
解析器 monad 周围的层中来实现某种程度的自动化,但我不能只使用现有的原始解析器。
这个问题有现成的解决方案吗?
serialization - 双射 - Java Avro 序列化
我正在寻找一个示例来对 AvroSpecificRecordBase
对象进行类似于 a 的Bijection,GenericRecordBase
或者是否有一种更简单的方法可以将该AvroSerializer
类用作 Kafka 键和值序列化程序。
boolean - 在 Agda 中定义双射
问题是我们如何在 agda 中定义双射?定义:
我们知道
对于数字。同样,我们有
其中 A ∼= B 表示 A 和 B 之间存在双射,即存在
f : A → B
和g : B → A
互为逆元,即g (f x) = x
对所有人x : A
和f (g y) = y
对所有人y : B
。在 Agda 中实现这些双射!
所以我开始Bool
为它定义一些函数:
但我坚持双射,完全不知道如何解决它。
java - 无法使用 avro:Java 在 kafka spark 流应用程序中反转 twitter 双射异常
我一直在学习使用火花流从 kafka 生成和使用消息的教程。这个想法是产生以 avro 格式序列化的简单消息。反序列化来自 avro 格式的消息并使用 spark 流式处理。由于双射 api 引发 Failed to Invert 异常,我无法使用该消息。
制片人:
消费者:
例外: