問題タブ [digraphs]
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.
python - djangoテンプレートで辞書の辞書を使用するとうまくいきません
加重有向グラフは、Python の辞書の辞書として表されます。このようなもの(例):
私の問題は、この digraph オブジェクトを Django Template システムに渡すことです。この例では、'a'、'b'、'c'、'd' はグラフのノードであり、ダイグラフはこれらのノード間の接続を整数値で指定された各接続エッジの重みと共に表します。
一般的なノードnodeを考えてみましょう。
テンプレート内のdigraph.node.itemsにアクセスできません。どの辞書 D に対しても、D.itemsは適切に機能します。ただし、サブディクショナリのアイテムにアクセスしたい場合はそうではありません (上の有向グラフ)。これはまさに私が欲しいものです(しかしうまくいきません):
adj_nodeとweightは出力されません。
character - 二重文字を含む言語の ISO 標準
私の言語 (アルバニア語) では、「sh」、「xh」、「th」、「dh」、「ll」は 1 つの音 (文字) です。ユーザーが「th」と書いたときに「t」や「h」ではなく文字「th」であることをアプリが認識できるようにするには、どうすればよいでしょうか。
java - BinaryRelation のインターフェース
二項関係と推移関係の洗練されたインターフェイスを定義したいと思います。私は二項関係を対の集合、ある集合 X × Y の部分集合と考えています。実際には主に推移関係を扱うつもりですが、一般的な二項関係が必要になることもあります。これは主に私自身の使用のためですが、他のユーザー向けに FLOSS ライブラリとして公開することになるかもしれません。これらのクラスの使用に関する正確な要件がまだないため、私の定義が一般的なレベルで意味を成すことを望みます: 科学研究に関連する実験作業のために必要です。現在いくつかのアイデアがありますが、どのような種類かはまだ不明です研究をしているうちに、より多くのアイデアが生まれるので、私が必要とする実験の数。
一般的なアイデア
私が(私が思うに)必要なものの核心は次のとおりです。
(これはコア機能にすぎないので、私の言いたいことが分かるように — トラバーサルなどのより良い機能は歓迎されます。以下を参照してください。) 次に、TransitiveRelation<E>
を拡張BinaryRelation<E, E>
し、 を実装するのadd
ではなく、 を提供する を定義しますaddTransitive(F from, T to)
。
古典的なコレクションの再利用
もちろん、古典的なコレクション インターフェイスを可能な限り再利用したいと考えています。Guava のSetMultimap
( javadoc、ユーザー ガイド) には、私が必要とするコア機能が含まれているようです。ユーザー ガイドでは、ラベルのない有向グラフの使用例についても言及しています。直接使用する際に見られる1つの問題SetMultimap
二項関係の場合に「キー」と「値」について話すのは奇妙です。さらに、何かが欠けています。SetMultimap (キーから値に移動するように設計されている) には意味のある非対称性がありますが、バイナリ関係ではあまり意味がありません。SetMultimap には、"from" 要素が与えられた場合に、それに関連する "to" 要素を効率的に (つまり、リレーション全体をトラバースすることなく) 反復できるインターフェイス (および実装) があります。同様に、「to」要素を使用して、対応する「from」要素を効率的に反復できるようにしたいと考えています。そのため、BiSetMultimap ( aMap<K, Set<V>>
と a の両方に対応Map<V, Set<K>>
) と呼ばれるものが必要です。Javaの世界ではそのようなものを見つけることができませんでした。
したがって、私は現在、へのファサードBinaryRelation<F, T>
として定義することを考えています。次に、より適切な名前のメソッドをインターフェイスに作成し (概念的には のメソッドと同等)、 "from" 要素を提供するメソッドを追加できます。1つは関係を表し、もう 1 つはその逆を表します。SetMultimap<F, T>
SetMultimap
getInverselyRelated(T to): Set<F>
SetMultimap
この問題には、多数の代替アプローチがあります。たとえばBinaryRelation
、拡張として定義できますSetMultimap
。または、完全に非表示にすることを避けてSetMultimap
、 経由でアクセスできるようにすることもできますBinaryRelation#asSetMultimap()
。そうすれば、すべての素敵なメソッド インターフェイスを取得できます。または、特定のインターフェースのアイデアを完全に放棄し、 のSetMultimap
代わりに を使用することもできますBinaryRelation
。その場合、リバース トラバーサル操作は特定のクラスで利用できるがインターフェース レベルでは利用できない最適化機能であると考えられます。または、SetMultimap 以外のものを設計の基礎として使用することもできます。
したがって、私の質問 (最後に!): 私のアプローチについてどう思いますか? 他のアプローチを考えていただけますか?私が見落としたいくつかの問題?私が使用できる既存のソリューション?
可能なリンク
いくつかのグラフ ライブラリ ( JUNG、JGraphT、Blueprint ) を使用することを考えましたが、それらは私のニーズに合わないと思います。私の謙虚な意見では、これらすべてEdge
に複雑さを追加するクラス (または Edge 型パラメーター) があり、インターフェイスと実装を提供するものはありません。ユーザーマニュアルにあるように、 Grphは頂点のオブジェクトを提供しません。私は何かを見逃しているかもしれませんが、同意できない場合は教えてください。SetMultimap
(編集) Xaerxess が述べたように、このグアバの問題は、ここで BiSetMultimap と呼ぶものを Guava に追加することを提案しています。
python - Pythonのループでiを増やす
私が持っているいくつかのコードを実行するループを何らかの方法で作成し、ループを実行するたびにa
増加し、下部の行を出力できますか?
アップデート
ha[a]
in str1=h[a
] には、次のような一連のリストが含まれています。
a
で増加するループを実行できればstr1 = h[a]
、次の出力が得られると考えていました。
しかし、今は私が選んだその1つの行だけがカウントさa
れますか? これは意味がありますか?
dot - 他の場所で定義されていても、サブグラフ内にノードを配置するGraphvizドット
宿題の問題用にドット スクリプト ジェネレーターを作成しようとしていますが、サブグラフで定義されていないノードが配置されているというこの問題があることを除けば、うまくいっています。たとえば、次のドット スクリプト:
この画像を生成します:
「Vehicle」ノードは、「Ford」サブグラフの外にあるはずです。ここで何が欠けていますか?
c++ - c++ ダイグラフは使用しないでください (MISRA C++ 2-5-1)
によると、MISRA C++ 2-5-1
通常、有向グラフを台無しにすることは避けるべきです。ただし、一般的な演算子、、 ...を定義するために、読み取り可能な単語 、 などのand
使用も避ける必要がある理由がわかりません。or
not
&&
||
この問題は、Sonar/MISRA の「主要な」問題として強調されています。
特定の理由で、ルールに人間が読める??=
ダイグラフ (不可解な,とはまったく異なる)も含まれているのか、それともルールが一般的すぎるのか? それらを使用する際の特定のリスクや副作用は見つかりませんでしたが、間違っていますか???/
まとめ
この MISRA ルールに、人間が読めるダイグラフも含める機能上の理由はありますか? コードコンプライアンスルールをやみくもに満たすためだけにそれらを避けるべきですか、それとも背後に隠れている本当のトリッキーな理由がありますか?
javascript - D3.js Enter exit 更新パターンの実装
バックグラウンド:
THREE.js 内の有向グラフを探索するテスト プロジェクトに取り組んでいます。DOM ではないデータ構造を持っていますが、多くのプロパティを共有しています。つまり、構造は階層的であり、(サブグラフ)選択を実行できます。レイアウトエンジンを構築しました。今、私はそれを動的にしたいと考えています。これは、この場合はシーン オブジェクトによって表されるノードを追加/削除/更新できるようにしたいということです。
これが D3.js で処理される方法が気に入っていますが、ライブラリは DOM に存在するデータに大きく依存しているようです (?)
ソースコードを調べて、少し頭が痛くなりました。
質問:
私の(非DOM)シナリオを処理するおもちゃの実装を作成したいので、Mike Bostockの入力、終了、更新パターンがどのようにコーディングされているか知っている人はいますか。
よろしくお願いします。