問題タブ [upperbound]
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.
java - ジェネリック Java 型のクラスは、クラス型がジェネリック スーパー型によって上限が設定されている変数に割り当てることはできません
私は Java 8 を使用しています。私の設計では、 や などの値パラメータをモデル化するいくつかの単純なクラスがありFloatParameter
ますEnumParameter<E>
。GenericParameter<T>
パラメータ名とそのデフォルト値を実装するこれらのクラスの共通のジェネリック スーパー クラス ( ) があります。サブクラスは、の場合の範囲など、サブクラスに固有の他の属性を実装しますFloatParameter
。
さらに、特定のタイプに関係なく、パラメーターのタイプを操作したいと考えています。しかし、私はまだ、型が のサブ型であるという方法で型をバインドしたいと考えていますGenericParameter<T>
。そのために、 などのメソッドを作成しましたprocess(Class<? extends GenericParameter<?>> paramType)
。
ここで、問題は、型の変数に を割り当てるEnumParameter.class
ことができないClass<? extends GenericParameter<?>>
一方で、 を割り当てることがFloatParameter.class
できないことです。
さらに、クラスのコードをリストして、より明確で再現性を高めます。
最後に、非ジェネリック基本クラスを使用する場合、問題はありません。
何か提案はありますか?
回避策として使用することも、キャストを行うこともできますがprocess(Class<?> paramType)
、コンパイラによる静的な型チェックを利用したかったのです。
編集:
パラメータの型ごとにGUIコンポーネントを生成するファクトリを登録する際にキャストを使いたいと考えています。コードは次のようになります。
このような場合、コンパイラはコンパイル時に追加されたパラメーターの型をチェックします。また、コードはより自明になります。
編集2:
現在、提案されたアプローチを使用して、addParameterComponentFactory
メソッドの型パラメーターを導入しています。署名は次のようになります。
この定義により、TypedParameter.class
( EnumParameter.class
- 型パラメーターも 1 つ) を指定することができ、静的な型チェックを取得できます。
algorithm - 並列アルゴリズムの上限/下限をどのように証明しますか?
フィボナッチ アルゴリズムがあるとします。
このアルゴリズムの上限/下限を証明するよう求められます。
続行するにはどうすればよいですか?
アップデート
そこで、私が自分で行ったことを説明し、行き詰まっている場所を示します。
理由はわかりませんが、ここで再帰関係を使用して、最終結果が得られる場所を確認することにしました。しかし、私が自分のワークアウトを疑う理由は、上限/下限が、リソースの観点からのアルゴリズムの「無限」の識別であるためです。
したがって、並列アルゴリズムには次のものがあります。
仕事(n) = W(n - 1) + W(n - 2) + Θ(1)
この時点で、再帰関係を使用することにしました-わかりません-
正直、意味があるかどうかもわかりません。
しかし、私は上記の手順をよく理解していませんでした
algorithm - 上限ラッシュアワーゲーム
ラッシュアワーゲーム パズルの複雑さの上限を理解しようとしています。私は、トラック (長さ 3 グリッド) と車 (長さ 2 グリッド) を含む車両で、9x9
ボードを扱っています。22
私の論理では、車がボード上を一方向に移動できるという事実を考える8 times
と9x9
、計算は8^22
となり、結果は になり7.34e+19
ます。7.34e+19
これは、このパズルの上限が異なる状態であることを意味します。
反復されたボードの状態の数を考慮して、アルゴリズムがソリューションにどれだけ近いかを計算したいので、私には過剰に思えます。すべての車両がトラックであり、したがって 2 回しか移動できないと仮定しても、7
大きすぎるように思えます。
上限は過大評価されていますか? 車両が占有していないスペースは可動スペースの量だけと考えるべきではないでしょうか。