問題タブ [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 を UNIQUE(tag1, tag2) ではなく FROM (tag1, tag2) TO tags(tag_id) で一意にしたいということです。

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すべてまたはほぼすべての値をカバーする必要があり0ます。ここで、はパラメーターのビット数です。2^(n + p) - 12^np

たとえば、LCGは純粋関数のように計算でき、最初の条件を満たすことはできますが、2番目の条件を満たすことはできません。たとえば、32ビットLCGがm = 2^32あり、それは一定であるためp = 64(2つの32ビットパラメーターacn + p = 96、、 2番目の条件を満たすには、出力から3intずつデータをピークする必要があります。残念ながら、出力の奇数と偶数のintのシーケンスが厳密に交互になっているため、条件を満たせません。これを克服するには、隠された状態を導入する必要がありますが、それは機能を純粋ではなく、最初の条件(長い隠された期間)を壊します。

編集:厳密に言えば、ビットによってパラメーター化され、pビットの完全な状態を備えた関数ファミリーが必要です。各関数は、 -bit intを連続的にインクリメントするだけでなく、一意の「ランダムな」方法nでビットのすべての可能なバイナリ文字列を生成します。そのユニークな方法を選択するために必要なパラメータ化。p + n(p + n)

欲しすぎですか?

0 投票する
11 に答える
6234 参照

algorithm - 整数の対称全単射アルゴリズム

32ビットの符号付き整数を別の32ビットの符号付き整数に1対1でマッピング(つまり、衝突なし)できるアルゴリズムが必要です。

私の本当の懸念は、関数の出力がランダムに見えるように十分なエントロピーです。基本的に私はXOR暗号に似た暗号を探していますが、それはより任意に見える出力を生成することができます。あいまいさはありますが、セキュリティは私の本当の関心事ではありません。

明確にするために編集します。

  1. キーペアなしで操作を元に戻すことができるように、アルゴリズムは対称である必要があります。
  2. アルゴリズムは全単射である必要があり、32ビットの入力番号ごとに32ビットの一意の番号を生成する必要があります。
  3. 関数の出力は十分にあいまいである必要があります。入力に1つだけ追加すると、出力に大きな影響を与えるはずです。

期待される結果の例:

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

MD5と同じように、1つのものを変更すると、多くのことが変更される可能性があります。

私は数学関数を探しているので、整数を手動でマッピングすることは私にとって解決策ではありません。質問している人にとって、アルゴリズムの速度はそれほど重要ではありません。

0 投票する
1 に答える
2350 参照

java - JBoss Seam:@Createメソッドに注入できますか?

@Createメソッド内にSeamコンポーネントを挿入できないようです。私はこれが不可能であるというヒントをドキュメントで見つけることができません。それは私が間違いを犯しているかどうかを確認するでしょう。

@Create内に注入することは可能ですか?

乾杯!

0 投票する
1 に答える
1214 参照

java - 次のリクエストで Seam セッションスコープのコンポーネントが消える

標準の Seam Identity (これもセッションスコープ) をオーバーライドする Seam セッションスコープのコンポーネント CustomIdentity があります。拡張された CustomIdentity にはプロパティがあります

オーバーライドされた login() で、HttpServletRequest のプリンシパルからの情報を取り込んだ User オブジェクトを定義します。アプリケーションの最初のリクエストで、User オブジェクトは SESSION スコープで期待どおりにアウトジェクトされます。ただし、2 番目のリクエストでは、User オブジェクトがセッションから消失しており、それを注入するページにアクセスすると、例外が発生します。

私の質問は、コンポーネントが正確にいつ排出されるかです。

  • CustomIdentity コンポーネントのすべてのメソッドの後に (の参照が含まれていなくてもuser)?
  • User コンポーネントの参照を含む各メソッドの後?

そしてrequired属性について:

  • アウトジェクト時に User オブジェクトが と評価された場合null、すでにアウトジェクトされたユーザーはセッション スコープから削除されますか?

乾杯!

0 投票する
2 に答える
131 参照

python - 範囲といくつかの定数の間の全単射関係?

この質問をコード レビュー エリアに移動してください。以下のコードがジャンクであることを知っており、書き直しを完了するために重要なフィードバックが必要だったので、そちらの方が適しています。

Python で set-to-constants 関係を記述するにはどうすればよいですか? したがってA、範囲内にある場合は、対応する定数を返します。

臭いコード、悪い。

0 投票する
3 に答える
765 参照

algorithm - 配列間の全単射を見つけるアルゴリズム

私は2つの配列、たとえば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) 表記のようなものを使用することです。しかし、追加の労力を最小限に抑えて p.3 に収めることができるでしょうか? 常識では、BaseXXX 値に対して全単射の「String <-> String」関数がさらに必要であることがわかります。助言がありますか?または、3 つの要件すべてを満たすために使用する BaseXXX よりも優れたものがあるでしょうか?