問題タブ [cyclic]

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 に答える
149 参照

.net - 双方向リンク、(dll) インポートされた型、およびバージョン管理を使用したグラフのシリアル化..?

オーケー、シリアル化について SO で以前にいくつか質問したことがありますが、まだ立ち往生しているので、誰かが私の鼻を正しい方向に向けることができることを期待して、副次的な問題ではなく、ケース全体を吐き出します。 :)

私のアプリケーションは Apple の「Quartz Composer」に似ています。つまり、接続されたノードのツリーのような構造を持っています。

ノードは INode インターフェースによって定義されます。実際のノード タイプ/クラスは、MEF を使用して DLL からインポートされるため、ノード タイプはコンパイル時に認識されません。

ノードは接続されているため、双方向リンクが発生する可能性があります。

「構成」(ノードのツリー全体) を、できれば XML のように人間が判読できるファイルに保存したいと考えています。独自の形式で保存するのは本当に避けたいです。

したがって、シリアル化する必要があるのは次のとおりです。

  • オブジェクトのツリー。そのクラスは実行時にインポートできます (したがって、事前に認識されません)。双方向リンクを含めることができます。

  • さらに、使用されているノード クラスのバージョン情報を保存したいので、現在のアプリケーションで使用されている dll / ノード クラスよりも古いバージョンのノード クラスを使用して「コンポジション」が保存されているかどうかを確認できます。

以前、私は DataContractSerializer を指摘されました。これは、ツリーを格納し、双方向リンクを完全にサポートするための気の利いたツールのようです。

しかし、ツリー (Interface IComposition) をシリアル化する場合、不明な型について不平を言い始めます。ツリーのシリアル化中に発生する可能性のある特定の型をそれぞれ指定する必要があります...

また、特定のノード クラスに使用されたアセンブリ バージョンを指定する方法もありません。

どういうわけか、最初にツリー全体を列挙してどのノードクラスが使用されているかを調べ、これらを既知の型のリストに追加してからシリアル化するのは正しくないと感じています。

それでも、使用するクラスのバージョン情報を指定するセクションを output-data に追加する方法を見つける必要があります。

この問題を抱えているのは私だけかもしれませんが、他の誰かがこの問題に遭遇して克服したことを本当に願っています-できればエレガントなソリューションを使用してください;)標準の.NETシリアライザーで処理できるものではないと想像できますが、たぶん、サードパーティ(無料、オープンソースでも?)の実装がありますか?

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

ocaml - 可変リストにocamlのサイクルがあるかどうかをチェックしていますか?

Ocamlの可変リストにサイクルが含まれているかどうか(つまり、それ自体への参照があり、継続的に繰り返されるかどうか)をテストする関数を作成しようとしています。

私のリストはとして定義されていtype 'a m_list = Nil | Cons of 'a * (('a m_list) ref)ます。

これまでのところ、私は持っています:

しかし、それは完全に正しくはなく、ここから先に進む方法がわかりません...助けてくれてありがとう!

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

ocaml - ocamlのサイクリック/可変リストからサイクルを削除しますか?

タイプの可変リストからサイクルを削除する方法がわかりません。

type 'a m_list = Nil | Cons of 'a * (('a m_list) ref)

たとえば、リスト3,2,2,1,2,1,2,1、.....がある場合、3,2,2,1を取得したいと思います。
私が理解できないのは、最初のサイクリングの場所です。このような再帰がありますが、これを再帰関数にラップする方法がわかりません。明らかにここでは、最初のいくつかの用語をチェックするだけです。

m_listにサイクルがあるかどうかを通知するis_cyclic関数があります。これを破壊的に(参照を更新する)または破壊的に(新しいリストを作成する)のいずれかで実行したいと思います。

ありがとう!

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

queue - [データ構造]: 巡回キューの末尾ポインタ

Cyclic Queue の実装では、テール ポインターはキューの最後の要素の 1 つ後ろの位置を指します。

なぜ?

最後の要素の 1 つ前ではなく、最後の要素を指すテール ポインターを使用して Cyclic Queue を実装できると思います。

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

python - Python で「単純な」巡回冗長検査プログラムを作成できますか?

私は Python プログラミングのやり方に非常に慣れており、CRC チェックを実行する簡単なプログラムの作成を任されていました。どのモジュールを使用/読むべきかについて、誰かが良い出発点を提案できますか? 単純なプログラムは、実際の実行可能ファイルではなく、Python で生成されたバイナリ コードに対して CRC を実行するだけだと思います。

もう 1 つのタスクは、ディレクトリ構造を一覧表示することです。OSモジュールを見つけました.OSモジュールはすべてのディレクトリを探すのに適した場所だと思いますか?

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

string - 循環文字列を検索する

バイナリ文字列をデータ構造に格納する最も効率的な方法(関数の挿入)を探しています。次に、文字列を取得するときに、指定された文字列の循環文字列が構造に含まれているかどうかを確認します。

入力文字列をTrieに格納することを考えましたが、取得した文字列の循環文字列がTrieに挿入されたかどうかを判断しようとすると、|s|を実行します。Trieで、考えられるすべての循環文字列を検索します。

場所の複雑さがトライのようになる一方で、それをより効率的に行う方法はありますか?

注:文字列の循環文字列とは、たとえば次のすべての循環文字列を意味します10110111, 1110, 1101, 1011

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

python - サイクリックサイファーを使用したメッセージの暗号化

次に例を示します。

  • プレーン:ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • シフト=4
  • 暗号:DEFGHIJKLMNOPQRSTUVWXYZABC

コードは次のとおりです。

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

java - android/java - 効率的な同時巡回キューを探しています

境界のある concrrent cyclic queue の (オープンソース) 実装、または android/java に組み込まれた利用可能な API クラスを知っている人はいますか?

このコレクションに必要な同時 (同期またはロック ベースではない) 操作は、少なくともエンキューとデキューですが、エンキューでも十分です。

私が必要とするコレクションについてよくわからない人のために、ここにいくつかの詳細情報があります:

  • 制限付き - その中に入れることができるアイテムの最大数があります。
  • 並行 - いかなる種類のロックも行わずに、複数のスレッドが効率的に操作を実行できるようにします。これは、単一のスレッドのみが操作を実行できる同期ソリューションの反対です。
  • 循環 - アイテムを塗りつぶされたコレクションに入れると、新しいアイテムが最も古いアイテムに置き換わります。

助けてください

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

java - 循環オブジェクト ツリーをシリアル化 – StackOverflowError – カスタムのシリアル化コードが必要

Sqlite データベースの blob フィールドに入力するためにシリアル化する必要がある双方向循環オブジェクト ツリーがある Android アプリを作成しています。しかし、デフォルトのシリアライゼーションの実装では、StackOverflowError がスローされます (一番下のスタック トレース)。しかし、この状況を回避するためにカスタム Java シリアル化コードを作成した経験はありません。

私はこのスレッド(Javaでオブジェクトをシリアル化するときのStackOverflowError)彼は問題について話しますが、私の場合にそれを実装する方法は本当にわかりません:

最初のリンクがシリアライズされると、単純にリストをたどり、各リンクを繰り返しシリアライズするようなリスト クラスの writeObject() メソッドを定義することができます。これにより、デフォルトの再帰メカニズムが使用されなくなります。

これは私のオブジェクト モデルです (他の兆候ではなく、1/M を見てください)。 ここに画像の説明を入力

これは、オブジェクト モデルをバイト配列にシリアル化するために使用する方法です (それほど重要ではありません)。

カスタムのシリアル化関数:

誰かがこの問題を解決するのを手伝ってくれることを願っています. 手がかりをいただければ幸いです。

例外スタック トレース:

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

maven - Maven ランタイム スコープと循環依存関係

私は2つのモジュールAとBを持っています.実際にはBはAへのプラグインです.Bは
コンパイル時にAに依存します. A は B に依存しません。実行時に B をクラスパスに追加したいので、A の pom.xml に次の依存関係を追加します。

pom.xml

Maven プロセスが循環依存エラーで失敗する

[エラー]

ランタイムの依存関係がコンパイル時間に影響するのはなぜですか?