問題タブ [huffman-code]
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.
blackberry - 圧縮された短い文字列をデコードします。使用された圧縮が不明 - 更新
未知の方法で文字列を圧縮するプログラムがあります。いくつかの入力と生成された出力は知っていますが、文字列の圧縮に何が使用されているかはわかりません。
これが私の例です。
(ちょうど 38 xa、スペースなどはありません)
(ちょうど 32 xa)
(31 xa、次に 1 b)
(31 xb、次に 1 a)
(前の文字列と同じですが、末尾にスペースがあります)
どんな助け/アドバイスも素晴らしいでしょう、ありがとう! また、これらが BlackBerry 8120 からのものであることを知っておくと役立つ場合があります。
c++ - 一部のI/OコードでエラーC2664が発生します
293行目はinFile.open(Filename, fstream::binary);
c++ - スイッチを使用せずに文字列の周波数分析を行うにはどうすればよいですか
私は、テキストにハフマン コードを実装する学校のプロジェクトに取り組んでいます。もちろん、最初の部分では、テキストの頻度分析が必要です。巨大なスイッチとカウンターの配列以外に、それを行うためのより良い方法はありますか?
すなわち:
英数字と句読点を全部やりたいです。私はc++を使用しています。
c++ - ハフマン ツリーを構築した後、5 メガバイトのデータを読み取ったときのルートの重みは 700k です。
したがって、私の bytesread var = 約 5mil バイトですが、ルートの重みは、このすべてのコードの終わりまでに = 0 になります。
わからない場合は (就寝前にバグを探すのに少なくとももう 1 時間は費やすことになります)、効率を改善するためのヒントを教えていただけますか?
編集:問題はif(freq[i]<min1)
. まず、leas[i]-> min1 との重みの比較である必要があります。これは、ツリーを作成するために実際に操作している配列だからです (freq[] は、ツリーノード ポインターではなく、重みだけを持っています)。それを修正するために、その行とその後に if ステートメントを作成しましたif(leaves[i] && leaves[i]->weight<=min1)
。if(leaves[i] && (leaves[i]->weight)<=min2 && i!=wheremin1)
コードをクリーンアップするための提案が他にもある場合 (つまり、特定の場所にコメントを追加する、比較するさまざまな方法など)、提案してください。私は優れたコーダーではありませんが、そうなりたいと思っており、優れたコードを作成できるように努力しています。
Edit2: 新しい/修正されたコードを投稿しました。私のルートの重みはバイトリードに等しくなりました。このコードをクリーンアップするための提案はまだ受け付けています。
c++ - ファイルのビットをどのように処理しますか?
ファイルの個々のビットを処理したいとします。ファイルをcharごとに読み取ることができることは知っていますが、少しずつ簡単に読み取ることができますか?
c++ - 優先キューの順序が間違っています
私はハフマン符号化をプログラミングしています。これが私のプログラムの始まりです。
プログラムは最初に文字とその出現番号を出力します。これは問題ないようです:
ただし、ノードの内容を優先順に表示する必要があるテストループは、次のように出力します。
これは予期された順序ではありません。なんで?
c# - C#用の適応形ハフマン圧縮を持っている人はいますか?
誰かがインターネット上でこの種のソースコードを見ますか?
私はグーグルを試しました、これを持っているところはどこにもないようです。
適応形ハフマンエンコーダは良いですか?
または
誰でもそのソースコード(C#)について私と共有できますか?
ありがとう
c++ - それ自体のC++構造?
このコードを python に移植しようとしてきましたが、C++ でよくわからないことがあります (C++ は少し知っていますが、これは私を超えています)。
私が得られないのは、 huffnode_s がそれ自体の中にどのように存在できるかということです.これは前に見たことがなく、よく理解していません. これはどういう意味ですか?もし誰かができるなら、pythonに相当するものは何ですか?
java - 2つの文字を1つとしてコーディングするハフマン
1文字(a = 10, b = 11)
ではなく2文字でテキストをエンコードできるハフマンコード(PythonまたはJavaで最適)が必要です(ab = 11, ag = 10)
。それは可能ですか?もしそうなら、どこでそれを見つけることができますか、多分それはインターネットのどこかにあり、私はそれを見つけることができますか?
java - ハフマンの木について混乱している
ハフマンツリーについて混乱しています。上記のリンクの終わり近くに、2つの要素が残っているツリーと、完成したツリーが表示されます。私はそれが分岐する方法について混乱しています。ハフマンツリーを分岐する必要がある特定の方法はありますか?
たとえば、57:*とその右の子35:*は、右に分岐しています。左に35分岐し、右に22分岐したのでしょうか。また、22:*が15:4とペアになっていないのはなぜですか?20:5とペアになっているだけで、新しいツリーが作成されます。
最初の観察から、ツリーのバランスをとる必要はなく、リーフの頻度が親ノードの値に加算される以外の特定の順序を持つ必要はないようです。同じデータでハフマンツリーを作成する2人が、異なるエンコーディング値で終わる可能性はありますか?