問題タブ [bitstring]
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 - 予約注文ビット文字列からの二分木
予約注文ビット文字列 (ストリームの標準入力にパイプされる) からバイナリ ツリーを構築する必要があり、これについての私の理解が正しいかどうか疑問に思っていました。
11110001000 の予約注文ビット文字列 (1 は内部ノードを示し、0 は外部ノードを示す) を持っていた場合、このようなバイナリ ツリーになりますか?
preorder ビット文字列 (入力によって与えられる) からバイナリ ツリーを構築した後、高さ、パスの長さ、およびバイナリ ツリーが完成しているかどうかも確認する必要があります。しかし、Java でプリオーダー ビット文字列 -> バイナリ ツリー変換の実装を開始する方法がわからないため、これを実行できるところまで進むのに苦労しています。予約注文のビット文字列からバイナリ ツリーを構築する方法について、ヒントを教えてください。
java - 予約注文ビット文字列からのバイナリ ツリーの構築
課題をやろうとしていますが、最初のステップで問題があります。以下のリンクは、コンテキストの割り当てです。
入力例は次のとおりです。
a0
0
a00
ab000
次の出力が得られます。
ツリー 1:
無効です。
Tree 2:
height: -1
path length: 0
complete: yes
postorder:
Tree 3:
height: 0
path length: 0
complete: yes
postorder: a
Tree 4:
height: 1
path length: 1
complete: yes
postorder: ba
入力からバイナリ ツリーを実際に構築することに固執しているため、割り当てを進めることができません。これまでに思いついたコードは次のとおりです。
preorder メソッドを使用してバイナリ ツリーが正しく構築されていることをテストしようとしていますが、プログラムを実行するたびにどこかで無限ループに陥っているようです。誰がそれを引き起こしているのかを指摘するのを助けることができますか? そして、私は実際にこれで正しい軌道に乗っていますか? この特定のバイナリ ツリーを構築する方法について、ヒントはありますか?
ありがとう。
java - 二分木を正しく作成できませんか?
Javaを使用してSystem.inにパイプされた文字列入力からバイナリツリーを構築しようとしています。文字列にazからの文字が含まれる場合は常に、内部ノード(2つの子を持つ)を作成しています。文字列で0が検出されるたびに、外部ノード(リーフ)を作成します。文字列はプレオーダーであるため、例として、次のような入力があった場合:
abcd000e000
次の二分木を作ることになっています
少なくとも、それは私が割り当ての詳細(以下のリンクにある)に従って作成することになっていると私が思うものです。プログラム全体のサンプル入力と出力も提供されました。
入力
a0
0
a00
ab000
出力
ツリー1:
無効です!
ツリー2:
高さ:-1
パス長:0
完了:はい
ポストオーダー:
ツリー3:
高さ:0
パス長:0
完了:はい
ポストオーダー:a
ツリー4:
高さ:1
パス長:1
完了:はい
ポストオーダー:ba
Javaでこれを行うプログラムを実装しようとしていますが、バイナリツリーを正しく作成していないと思います。私はこれまでに思いついたコードを提供し、デバッグ中にこれまでに遭遇した問題を各メソッドの上のコメントで詳しく説明しました。より多くのコンテキストが必要な場合は、次のリンクで割り当て全体と最終的な目標を詳しく説明します(バイナリツリーの構築は最初のステップにすぎませんが、私はそれに固執しています)。
誰かがバイナリツリーを適切に構築するのを手伝ってくれて、私が現在得ている出力につながる間違っていることを指摘できますか?私は少なくとも正しい方向に進んでいますか?ヒントはありますか?
ありがとう。
編集: これが「正方形」の出力の写真です(これはEclipseにあります)。
python - パディングなしでビット文字列値を持つ dict をメモリに保存できますか?
ハッシュキーからビット文字列への辞書があります。ビット文字列は可変長にすることができますが、通常は 160 ビット未満で、通常は 80 ビット未満です。約 80M のキーと値のペアがあります。
このデータ構造をできるだけ少ないメモリに格納するにはどうすればよいですか? ビット文字列をパディングしたくありません。そうしないと、かなりのスペースが失われます (しゃれは意図されていません)。
ビット文字列の長さを示すために、最初にバイトを格納する必要があると思います。大丈夫。
このdictをメモリに保存する最もメモリ効率の良い方法は何ですか?
私は Python を使用したいと考えていますが、他の選択肢も受け入れています。
matlab - Matlab 関数の結果をファイルにキャッシュする
私はMatlabでシミュレーションを書いています。最終的には、このシミュレーションを何百回も実行します。各シミュレーション実行には、数百万回のシミュレーション サイクルがあります。これらの各サイクルで、非常に複雑な関数を計算しますが、~0.5
完了するまでに数秒かかります。関数入力は長いビット配列 (>1000 ビット) です。これは と の配列0
です1
。0
ビット配列をとの行列に保持し、1
それぞれに対して関数を 1 回だけ実行します。結果を別の配列 (res) に保存し、関数を実行する前にビット配列が行列に含まれているかどうかを確認します。 :
本当に2つの質問があります:
「ismember」よりも行列内の行のインデックスを見つける効率的な方法はありますか?
シミュレーションを何度も実行し、取得しているビット配列に大きなオーバーラップがあるため、実行間で行列をキャッシュして、同じビット配列に対して関数を何度も再計算しないようにします。また。それ、どうやったら出来るの?
erlang - Erlangのバイナリとビット文字列の違いは何ですか?
Erlang シェルでは、次のことができます。
しかし、次のことを試すと:
最初のケースでは、整数を取得し、ビット文字列構文を使用してそれを 32 ビット フィールドに入れています。それは期待どおりに機能します。2 番目のケースでは、term_to_binary
BIF を使用してタプルをバイナリに変換し、そこからビット文字列構文を使用して特定のビットをアンパックしようとしています。最初の例は機能するのに、2 番目の例は失敗するのはなぜですか? 両者は非常に似たようなことをしているようです。
c++ - 指定されたビットオフセットでの値の読み取り/書き込み
メモリバッファの指定されたビットオフセットで、指定されたビット長(必ずしも8の倍数である必要はありません)の数値を読み書きする必要があります。最上位ビットが最初です。
たとえば、オフセット6とビット長4に値5を書き込みます。
したがって、私が探している関数は次のように定義できます。
そして使用例:
この関数は、比較的大きなバッファ内の少数の値の読み取り/書き込み(大量のネットワークトラフィックのフィルタリング)に使用されるため、を使用して(おそらく間違って)破棄しstd::bitset
ました。
このタスクを達成/簡素化するために使用できる既存のライブラリはありますか?それを実装することに関する提案はありますか?
python - ビット文字列で完全なファイルを読み取る方法
ファイルからできるだけ多くの 24 ビット チャンクを読み取りたい。 チャンクの数がわからない場合、ビット文字列のConstBitStreamを使用してこれを行うにはどうすればよいですか?
現在、私はこれを行います:
(ここでは、事前にイベントの数を計算する必要があります)
list - Erlangビットインデックス
私は現在erlangを学ぼうとしています。私がやろうとしているのは、ビット配列またはintに格納されている配列の特定のインデックスに対して操作を実行することです。位置に0がある場合、その位置の配列へのインデックスは使用されません。
したがって、次のことを想像してください。
私の関数は次の形式です
そして、get_subarray_from_bitarray()のヘルプが必要です。erlangにはビット文字列(<< >>など)の周りに特別な構文があることを知っていますが、インデックスを取得するためにビット配列にインデックスを付ける効率的な方法はありますか?