问题标签 [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 回答
1735 浏览

postgresql - Postgres:从 A 到 B 的唯一引用

我想要一对(tag1,tag2)和tag_id之间的双射。

我不想参考,例如:

换句话说,我希望 REFERENCE 从(tag1,tag2)到标签(tag_id)是唯一的,而不是唯一的(tag1,tag2)。

0 投票
1 回答
2449 浏览

java - JBoss Seam - @In 注释不能与不同属性的访问器方法同时使用吗?

我使用 sean-gen (seam new-form) 生成了一个新表单,并使用 @In 注释向其中添加了另一个字段:

界面是这样的:

问题是,当我尝试访问我得到的属性时:

我的看法是这样的:

如果我删除“ fooField ”或“ barField ”,则视图会呈现并正常工作,但如果我尝试同时使用两者,则会出现上述异常。

我还注意到,如果我只使用 @In 注释(从 bean 中删除访问器方法),页面就可以工作。

这是预期的事情吗?我应该在问之前做功课吗?

我正在使用 JBoss 5.1.0.GA、Seam 2.2.0.GA 和 Java 6。

0 投票
2 回答
463 浏览

algorithm - 是否存在没有隐藏状态的“好”PRNG 生成值?

我需要一些好的伪随机数生成器,它可以像纯函数一样从其先前的输出中计算出来,而不会隐藏任何状态。在“好”下,我的意思是:

  1. 我必须能够以这样的方式对生成器进行参数化,即2^n使用任何参数(或它们的一些大子集)运行它以覆盖所有或几乎所有介于0和之间的值2^n - 1,其中n是输出值中的位数。

  2. 位的组合生成器输出n + p必须涵盖所有或几乎所有值02^(n + p) - 1如果我针对2^n其参数的每个可能组合运行它进行迭代,其中p是参数中的位数。

例如,LCG可以像纯函数一样计算,它可以满足第一个条件,但不能满足第二个条件。假设我们有 32 位 LCG,m = 2^32并且它是常数,我们的p = 64(两个 32 位参数acn + p = 96,所以我们必须从输出中查看三个整数的数据以满足第二个条件。不幸的是,由于输出中奇偶整数的严格交替序列,无法满足条件。为了克服这个问题,必须引入隐藏状态,但这会使函数不纯并打破第一个条件(长隐藏期)。

编辑:严格来说,我想要按p位参数化并具有完整n位状态的函数系列,每个函数都以独特的“随机”方式生成所有可能的二进制位字符串p + n,而不仅仅是连续递增(p + n)-bit int。选择该独特方式所需的参数化。

我想要的太多了吗?

0 投票
11 回答
6234 浏览

algorithm - 整数的对称双射算法

我需要一种算法,可以将 32 位有符号整数一对一映射(即无冲突)到另一个 32 位有符号整数。

我真正关心的是足够的熵,以至于函数的输出看起来是随机的。基本上我正在寻找一种类似于 XOR Cipher 的密码,但它可以生成更多看起来任意的输出。安全不是我真正关心的问题,尽管默默无闻是。

为澄清目的进行编辑:

  1. 该算法必须是对称的,这样我就可以在没有密钥对的情况下反转操作。
  2. 该算法必须是双射的,每个 32 位输入数字必须生成一个 32 位唯一数字。
  3. 函数的输出必须足够晦涩,只在输入中添加一个会对输出产生很大的影响。

预期结果示例:

F(100) = 98456
F(101) = -758
F(102) = 10875498
F(103) = 986541
F(104) = 945451245
F(105) = -488554

就像 MD5 一样,改变一件事可能会改变很多事情。

我正在寻找一个数学函数,所以手动映射整数不是我的解决方案。对于那些询问的人来说,算法速度并不是很重要。

0 投票
1 回答
2350 浏览

java - JBoss Seam:可以注入@Create 方法吗?

我似乎无法在 @Create 方法中注入 Seam 组件。我在文档中找不到任何暗示这是不可能的,这将验证我是否犯了错误。

是否可以在@Create 中注入?

干杯!

0 投票
1 回答
1214 浏览

java - Seam Session 范围内的组件在下一个请求中消失

我有Seam 会话范围的组件CustomIdentity,它覆盖了标准的Seam Identity(也是会话范围的)。扩展的 CustomIdentity 有一个属性

在覆盖的 login() 中,我定义了一个 User 对象,其中填充了来自 HttpServletRequest 的 Principal 的信息。在应用程序的第一个请求中,User 对象在 SESSION 范围内按预期弹出。但是,在第二个请求中,User 对象已经从 Session 中消失了,当我访问一个注入它的页面时,我得到了一个异常。

我的问题是何时准确地喷射组件:

  • 在 CustomIdentity 组件的每一个方法之后(即使它不包含对 的引用user)?
  • 在每个包含 User 组件引用的方法之后?

关于required属性:

  • 如果在弹出时 User 对象的计算结果为null,那么已经弹出的 User 是否将从 Session 范围中删除?

干杯!

0 投票
2 回答
131 浏览

python - 范围和一些常数之间的双射关系?

请将此问题移至Code Review -area。它更适合那里,因为我知道下面的代码是垃圾,我想要关键的反馈来完成重写。

如何在 Python 中编写集合到常量的关系?所以如果A在一个范围内,则返回其对应的常数。

闻代码,不好。

0 投票
2 回答
201 浏览

bits - 任何不同的 4 个 4 位字符串和所有 2 位字符串之间是否存在双射?

让我举个例子,让我们考虑一下字符串:1000 0101 0111 0000

以及全范围的 2 位字符串:00 01 10 11

我想知道是否有一个函数具有逆并将 4 个 4 位字符串映射到 2 位字符串。

0 投票
3 回答
765 浏览

algorithm - 查找数组之间双射的算法

我有两个数组,比如说A={1, 2, 3}B={2, 4, 8}(数组项数和数字可能会有所不同)。如何找到数组之间的双射。

在这种情况下,它将是f:A->B; f(x)=2^(x)

0 投票
5 回答
2083 浏览

algorithm - 双射“整数 <-> 字符串”函数

这是我正在尝试为其创建最佳解决方案的问题。我在[0...N]范围内有一组有限的非负整数。我需要能够将这个集合中的每个数字表示为一个字符串,并且能够将这样的字符串向后转换为原始数字。所以这应该是一个双射函数。

附加要求是:

  1. 数字的字符串表示应该至少在某种程度上混淆原始数字。所以像f(x) = x.toString()这样的原始解决方案将不起作用。
  2. 字符串长度很重要:越少越好。
  3. 如果有人知道K的字符串表示,我希望它是非平凡的(在某种程度上)猜测K+1的字符串表示。

对于 p.1 和 p.2,显而易见的解决方案是使用类似 Base64(或任何适合所有值的 BaseXXX)符号。但是我们能以最少的额外努力适应第 3 页吗?常识告诉我,对于 BaseXXX 值,我还需要一个双射“String <-> String”函数。有什么建议么?或者也许有比 BaseXXX 更好的东西来满足所有 3 个要求?