問題タブ [recursive-datastructures]
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.
c# - エンティティフレームワーク:再帰的な更新の親子は私に重複を与えます
次の表があるとします(スクリーンショットでは、場所から顧客へのFKは表示されていませんが、そこにあり、更新されませんでした...):
そして私のマッピング:
そして私の更新コード:
次のコードを実行します。
そこで、親子のロケーションコードを変更し、子ロケーションの商品の商品数量を更新します。数量は、製品テーブルのキーの一部です。また、親に新しい場所を追加しています。
質問:
- 製品を更新するにはどうすればよいですか?キーの一部を変更したため、context.Entry(...)を使用して古いキーを取得できません。
- 2番目の子の場所を追加した後、コンテキストに重複する顧客/場所があるのはなぜですか?最終的に、3つの場所と1つの顧客ではなく、5つの場所と2つの顧客になるため、PK例外が発生します。どういうわけか、場所に子供を追加した後、新しい顧客を作成します。つまり、2つの場所を持つ顧客エンティティと3つの場所を持つ1つの顧客エンティティがあります。なぜ???
cakephp - CakePHP のより深い再帰
次の問題があります。私は次の関係を持っています: A->B->C->D モデルのそれぞれの関係。「A」に属するすべての「D」を取得する必要があります
しかし、そこに b.a_id というエラーが表示されます。
recursive = 2; を試しました。
しかし、私は同じ問題を抱え続けています。
私は何を間違っていますか?PD: 申し訳ありませんが、私の英語は苦手です
c# - リストを使用したC#再帰プログラミング
各アイテムがアイテムの配列を保持できるプログラムに取り組んでいます(ツリーのような構造のメニューを作成しています)
現在、配列ではなくリストとしてアイテムを持っていますが、コードを単純化するためにそれを最大限に活用しているとは思えません。インターフェイス(.add、.removeなど)が非常に理にかなっているため、標準の配列ではなくリストを選択しました。
構造を検索して名前のパス(つまり、Item.subitem.subsubitem.subsubsubitem)を返すコードがあります。以下は私のコードです:
私の質問は、リストでこれを行う簡単な方法があるかどうかです。リストを使うべきか、配列だけを使うべきかについて、頭の中で行ったり来たりしてきました。リストがある唯一の理由は、アイテムを追加または削除するたびに配列のサイズを変更するコードを作成する必要がないようにするためです。
serialization - Jackson を使用した再帰クラスのシリアル化 (JSON)
HashMaps のツリーを次のように定義しました。
タイプが再帰的であることに注意してください: HashMap<K, HashTree<K, V>>
. Java では問題なく動作しますが、Jackson でシリアル化するとスタック オーバーフローが発生します。
これでシリアル化をインターセプトしようとしましたが、HashTree に遭遇したときに文字列 "123" を返すだけです。
これらのジェネリック型を削除するために HashTree を StringHashTree に拡張しましたが、それでもスタック オーバーフローが発生します。何か案は?
c++ - ハノイの塔 - n ペグ ソリューション アルゴリズム
再帰についてもっと理解するために、ハノイの塔の問題を実装していました。私は 3 ペグのケースを使用してそれを実装することができましたが、より多くのペグを使用したい場合 (より少ない動きを生成するため) は、私が持っているディスクの数を壊して1 つのペグに積み重ねる必要がある Frame-Stewart ソリューションを理解していますそして、元のペグからすべての中間ペグを使用して目的のペグにディスクを転送している間は、そのペグに触れないでください。しかし、関数として move(disks, 1, i, {2...K}) のようなものを記述する方法がわかりません。最初からペグの名前すら知らないのに、どうやって関数プロトタイプのすべてのペグの名前を書けばよいのでしょうか? 以下に 3 ディスク ソリューションについて考えたことを示しましたが、より一般的なケースについては助けが必要です。
6ペグのケースを解決するために、「移動」機能にどのような変更を加える必要があるのか わかりません。ありがとう
python - Pythonオブジェクトを再帰的にdir()して、特定のタイプまたは特定の値を持つ値を検索します
私は複雑なPythonデータ構造を持っています(それが重要な場合、それは大きなmusic21 Scoreオブジェクトです)。オブジェクト構造の奥深くにweakrefが存在するため、ピクルスになりません。私は以前にスタックトレースとPythonデバッガーでこのような問題をデバッグしましたが、それは常に大きな苦痛です。オブジェクトのすべての属性に対してdir()を再帰的に実行し、リスト、タプル、dictなどに隠されているオブジェクトを検索し、特定の値に一致するオブジェクト(ラムダ関数など)を返すツールはありますか?大きな問題は再帰的な参照であるため、ある種のメモ関数(copy.deepcopyが使用するような)が必要です。私は試した:
私はおそらくこれに穴を埋め続けることができます(たとえば、反復は私がdictに望むものではありません)が、私がそれにもっと時間をかける前に、誰かがより簡単な答えを知っているかどうか疑問に思います。それはかなり便利な一般的なツールかもしれません。
haskell - 帰納的データ型が、型の再帰が->の前で発生する `data Bad a = C(Bad a-> a)`のような型を禁止するのはなぜですか?
帰納的データ型とパターンマッチングの状態に関するAgdaマニュアル:
正規化を確実にするために、帰納的発生は厳密に正の位置に現れる必要があります。たとえば、次のデータ型は許可されていません。
コンストラクターへの引数にBadの負のオカレンスがあるためです。
誘導データ型にこの要件が必要なのはなぜですか?
count - スキームで特定の数値の桁数を数える方法は?再帰的かつ反復的に
数字の桁の合計を計算する方法を知っています:
しかし、桁数を数える手がかりがありません。また、線形反復進行によってそれを行う方法もわかりません。
ありがとう!!
c++ - メモ化再帰C++
スピードアップのためにメモ化を伴う再帰関数を実装していました。プログラムのポイントは次のとおりです。
私は(赤と黒のカードの数が同じである)カードのデッキをシャッフルし、それらを表向きに配り始めます。カードの後で「やめる」と言うことができます。その時点で、私はあなたに赤のカードが配られるごとに1ドルを支払い、あなたは黒のカードが配られるごとに1ドルを支払います。あなたの最適な戦略は何ですか、そしてあなたはこのゲームをプレイするためにいくら払うでしょうか?
私の再帰関数は次のとおりです。
3番目のifステートメントは、コードの「メモ化」部分であり、必要なすべての値を格納します。マップに保持されている値はマトリックスと考えることができます。これらの値は、特定の#redカードと#blackカードに対応します。本当に厄介なのは、合計8枚のカード(黒4枚と赤4枚)のコードを実行すると、間違った答えが返ってくるということです。しかし、10枚のカードのコードを実行すると、私の答えは間違っていますが、4つの黒と4つの赤の答えは正しいです(8枚のカード)!同じことが12枚のカードにも言えます。12枚のカードでは間違った答えが返ってきますが、10枚のカードでは正解です。コードにバグがありますが、わかりません。
scala - リストを使用した Scala の再帰型
scala の相互再帰型と同様に、Scala で相互再帰型を作成しようとしています。
このタイプで定義されたグラフを作成しようとしています(コンパイルします):
しかし、このタイプで実際に何かを作成する方法がわかりません。ノード A をエッジ B と C で初期化するには、少なくとも B と C への遅延参照が必要ですが、同時に作成することはできません。それらのエッジセット。
この再帰型を実装することは可能ですか?
編集:
これは、明示的な隣接リストを自己参照リストに変換するために現在使用しているソリューションです。
または代わりに、エッジリストから
みんなアドバイスありがとう!