問題タブ [space-efficiency]
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 - オブジェクトを 1 行で複数回参照する
だから私は自分のバージョンのテトリスを書いています。これが私がやりたいことです:
screen[0][1].setColor(Color.RED);
screen[0][1].setStatus(1);
これを1行だけで行う方法はありますか?
mysql - 新しいユーザーのメール確認コード (ベスト プラクティス)
サイトに登録しようとしているユーザーの電子メール検証のベスト プラクティスを研究してきました。(私はlaravelインストールを実行していますが、これはphpで発生していますが、これは理論的な問題です)。いくつか質問がありますので、意見をお聞きしたいです!
- アクティベーションキーを必要以上に長く保管しても意味はありませんか? 今のところ、ユーザーがアカウントをアクティブにするとキーを削除するように設定しています。
- アクティブ化後にテーブルからデータを消去すると、領域の割り当てが解除されますか? それとも単に空ですか?
- このプロセスを行うためのより良い方法はありますか? (キーと電子メールIDを列として持つ一時的な「トークン」テーブルを使用するという漠然とした考えがありました。登録が発生するたびに新しい行が追加され、ユーザーが確認すると削除されます(または、特定のタイムアウトの後)限目)
- 理想的には、生成されたキーのサイズはどれくらいであるべきですか? 単純な 5 桁の英数字コードは 6000 万以上の組み合わせを保持できるので、これをハッシュ化する必要はありますか?
私はこれをしばらく研究してきました。私の目標は、システムを完全にスケーラブルにし、できる限り効率的にすることです。どんな情報/議論も大歓迎です。
algorithm - IP 範囲から一連のサブネット/アドレスを取得する
次のことを行うための優れたアルゴリズム(または英語よりも上手に話す場合はコード)を探しています。
特定の IP 範囲 (例: 1.1.1.1 - 1.1.2.247) について、指定された範囲内のすべての IP を含むサブネット/アドレスの最小の組み合わせを見つけます。ブロードキャスト、サブネット 0 の制限、およびネットワーク クラスを無視します。
例:
- 1.1.1.1 - 1.1.2.1 の場合、{1.1.1.1, 1.1.1.2, ..., 1.1.1.255, 1.1.2.1} よりも優れている/小さい {1.1.1.1/24, 1.1.2.1} が得られます。
- 1.1.1.12 - 1.1.1.31 の場合、{1.1.1.12、1.1.1.13、1.1.1.14、1.1.1.15、1.1 よりも優れている/小さい {1.1.1.1.12/30、1.1.1.16/28} が得られます。 1.16/28}
興味深いことに、ユース ケースは、Openflow プロトコルを使用して、任意の範囲のソース/宛先 IP のネットワーク トラフィックを最小数のフローと照合することです。この最適化の必要性は、ハードウェア スイッチ/ルーターがこれらのフロー構成のためのスペースが限られており、プログラム/変更に比較的長い時間がかかるという事実から生じます。
c++ - C++ クラス設計: テンプレート引数に代わる動的型付け?
スペース効率の良いモジュラー算術クラスを構築したいと考えています。モジュラス M は、インスタンス化中に修正される不変の属性であるため、同じ M を持つ値の大きな配列 (std::vector または別のコンテナー) がある場合、M は一度だけ格納する必要があるという考えです。
コンパイル時に M を修正できる場合は、テンプレートを使用して修正できます。
ただし、私のアプリケーションでは、M ランタイムを表現できるはずです。私が持っているものは次のようになります:
これは機能しますが、mod M 値の大きなベクトルは、必要なスペースの 2 倍を使用します。
根底にある概念上の問題は、異なるモジュライの Mod は、異なるタイプである必要があるにもかかわらず、構文的には同じタイプであるということだと思います。たとえば、次のようなステートメント
「自然に」実行時エラーを発生させる必要があります(私のバージョンでは、「手動で」発生します。チェックは、実装するすべてのバイナリ演算子と同様に、コピーコンストラクターに組み込まれています)。
では、Mod オブジェクトの型がモジュラスを記憶するように、ある種の動的型付けを実装する方法はありますか? これを解決する方法を教えていただければ幸いです。
これは、さまざまな数学的構造 (たとえば、同じセットに多くの順列を格納する、同じグループの要素など) で繰り返し発生する問題です。
編集:私が理解する限り、
テンプレートは、クラスまたはリテラルによってパラメーター化された型です。
私が欲しいもの: const オブジェクトによってパラメータ化された型(
const num
この場合、const Group&
またはconst Group *const
グループなど)。
これは可能ですか?
arrays - Perl: 制約付き整数の 2D 配列をファイルに効率的に格納/取得する
これは私の Perl を改善する試み です:私がやろうとしていたことをより徹底的に説明することにより、バイトではなくビットをシークして読み取ります。
ファイルに非常に効率的に格納したい 9136 x 42 の整数配列 x があります。整数には次の制約があります。
x[0..9135][0] の 9136 個の整数はすべて -137438953472 から 137438953471 の間にあるため、38 ビットを使用して格納できます。
x[0..9135][1] の 9136 個の整数はすべて -16777216 から 16777215 の間であるため、25 ビットを使用して格納できます。
など... (整数ビットの制約は事前にわかっています; Perl はそれらを計算する必要はありません)
質問: Perl を使用して、この配列をファイルに効率的に格納するにはどうすればよいですか?
ノート:
整数を 25 ビットで格納できる場合は、7 ビットを無駄にしたくない場合は、4 バイト (32 ビット) で格納することもできます。ただし、私の状況では、すべてのビットが重要です。
ファイルを順番に読み取るのではなく、ファイル seek() を使用してデータをすばやく検索したい。
配列は通常 x[i] としてアクセスされます。つまり、特定の x[i] に対応する 42 個の整数が必要なので、これらの 42 個の整数は互いに近くに格納する必要があります (理想的には、ファイル内で互いに隣接して格納する必要があります)。
私の最初のアプローチは、ビットストリームを置いてから、それを読み戻して整数に戻す方法を見つけることでした。私の最初の質問はそれに焦点を当てていましたが、おそらく私が見ていないより大きな問題に対するより良い解決策があるでしょう.
私がやっていることの詳細が多すぎる:
assembly - 同じマシンコードで複数の命令をエンコードする
これが以前に行われたかどうかに興味があり、必ずしも実用的な価値があるかどうかはわかりません (ただし、空間効率の向上は明らかです)。同じマシンコード内で複数の命令をエンコードしたことがありますか? 例えば:
(これは完全に作り物です)
0xAEA2 -> R3 0xA2 を追加
0xEAE6 -> mov R1 0xE6
0xAAAA ...
1 ニブルを左にシフトしてマシン コードを再解釈すると、次のようになります。
0xEA2E -> mov R1 0x2E
0xAE5A -> R3 0x5A を追加