タグ付けされた質問 「coding-theory」

エラー検出、エラー修正、圧縮を可能にするデータ表現の研究。

8
スペースのないモールス信号は一意に解読可能ですか?
すべてのモールス符号文字列は一意に解読可能ですか?スペースなしで、 ......-...-..---.-----.-..-..-.. 可能性はありますHello Worldが、おそらく最初の文字はaです5-実際には、ドットとダッシュの任意のシーケンスが一意の翻訳を持つべきではないようです。 人は多分Kraft不等式を使用するかもしれませんが、それはプレフィックスコードにのみ適用されます。 モールス信号スペースではある接頭コードメッセージは常に一意に復号することができます。スペースを削除すると、これは事実ではなくなります。 私が正しい場合、すべてのモールス信号メッセージを一意にデコードすることはできませんが、考えられるすべてのメッセージをリストする方法はありますか?codegolf.SEで見つけたいくつかの関連する演習を次に示します。 https://codegolf.stackexchange.com/questions/36735/morse-decode-golf https://codegolf.stackexchange.com/questions/131/morse-code-translator

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

4
モールス符号は、バイナリ、3進、または5進です​​か?
私は本を​​読んでいます:「コード:コンピュータのハードウェアとソフトウェアの隠された言語」と第2章で著者は言います: モールス符号は、コードのコンポーネントがドットとダッシュの2つだけで構成されているため、バイナリ(文字通り2つずつ)コードと呼ばれます。 一方、ウィキペディアはこう言います: 厳密には、5つの基本要素があるため、バイナリではありません(5進を参照)。ただし、これはモールス信号をバイナリコードとして表現できないことを意味するものではありません。抽象的には、これは電信オペレータがメッセージを送信するときに実行する機能です(5項参照)。 しかし、もう一度、ウィキペディアの別のページの「バイナリコードのリスト」にモールス信号が含まれています。 モールス符号は実際には三元系だと思うので、私は非常に混乱しています。沈黙、短いビープ音、長いビープ音の3種類の「可能性」があります。 モールス符号を「stirct binary」で表現することは不可能ではありませんか? 「厳密なバイナリ」とは、バイナリストリームを考えます。1010111101010..沈黙、短いビープ音、および/または長いビープ音をどのように表すのですか? 私が考えることができる唯一の方法は、コンピューターが実装する「ワードサイズ」です。私(およびCPU /コードのインタープリター)が毎回8ビットを読み取ることを知っている場合、モールス符号を表すことができます。単純に1の短いビープ音または0の長いビープ音を表すことができ、無音は暗黙的に単語の長さで表されます(たとえば、8ビット)。したがって、この3番目の変数/私の手:ワードサイズ。 私の考えは次のようになります。最初の3ビットを読み取るビット数に予約し、最後の5ビットを8ビットワードのモールス符号に予約できます。00110000などは「A」を意味します。そして、私はまだ「バイナリ」ですが、それを3進数にする単語サイズが必要ではありませんか?最初の3ビットは、次の5ビットから1ビットのみを読み取ります。 3進数を使用する場合、2進数の代わりに、101021110102110222などのモールス信号を表示できます。ここで、1はdit 0はdah、2は無音です。222を使用すると、長い無音をコーディングできます。したがって、*-* --- *-のような信号がある場合は、102100022210のように表示できますが、1と0だけを使用して直接使用することはできません。私が言ったように「固定」ワードサイズのようなものですが、これは解釈されており、モールス符号をバイナリのまま保存するのではありません。ピアノのようなものを想像してください。ピアノのボタンしかありません。誰かにモールス信号でメッセージを残し、ボタンを黒にペイントすることができます。明確なメッセージを残す方法はありませんか?沈黙(文字と単語の間にある沈黙)を配置できるように、少なくとも1つ以上の色が必要です。これが私が意味するものです。 私は、あなたがモールス法を57-aryまたは他の何かで表現できるかどうかを尋ねていません。 このことについて著者(Charles Petzold)にメールしました。「コード」の第9章でモールス符号をバイナリコードとして解釈できることを実証していると彼は言います。 私の考えのどこが間違っていますか?私が本で読んでいるのは、モールス符号がバイナリであることは事実かどうか?それはどういうわけか議論の余地がありますか?モールス信号が1つのウィキペディアページで5進法であると言われ、バイナリコードのリストページにもリストされているのはなぜですか? 編集:著者にメールを送信し、返信がありました: - - -オリジナルメッセージ - - - From:Koray Tugay [mailto:koray@tugay.biz] 送信日:2015年3月3日火曜日午後3時16分 宛先:cp@charlespetzold.com 件名:モールス符号は本当にバイナリですか? サー、ここで私の質問を見ていただけますか:モールス符号は2進数、3進数、5進数のどちらですか?キナリー? よろしく、Koray Tugay From: "チャールズペツォルド" 宛先:「 'Koray Tugay'」 件名:RE:モールス信号は本当にバイナリですか?日付:3 2015年3月23:04:35 EET 「コード」の第9章の終わりに向かって、モールス符号をバイナリコードとして解釈できることを示します。 - - -オリジナルメッセージ - - …


4
n個の設定ビットを持つ数値を正確に生成するためのPRNG
現在、バイナリデータを生成するコードを書いています。具体的には、指定されたビット数で64ビットの数値を生成する必要があります。より正確には、プロシージャはを取り、正確にビットがに設定され、残りが0に設定された擬似ランダム64ビット数を返す必要があります。0&lt;n&lt;640&lt;n&lt;640 < n < 64nnn111 私の現在のアプローチには、次のようなものが含まれます。 擬似乱数64ビット数を生成します。kkk のビットをカウントし、結果を保存します。kkkbbb 場合、出力します。それ以外の場合は1に進みます。b=nb=nb = nkkk これは機能しますが、洗練されていないようです。これよりもエレガントにセットビットの数を生成できるPRNGアルゴリズムの種類はありますか?nnn

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z =&gt; x var x; Z =&gt; let x = undefined in Z x = y; Z =&gt; let x = y in Z if x then T else F; Z =&gt; if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
算術コーディングへのハフマンコーディングの一般化はありますか?
ハフマン符号化、算術符号化、および範囲符号化の関係を理解し​​ようとするとき、ハフマン符号化の欠点が分数ビットパッキングの問題に関連していると考え始めました。 つまり、シンボルに240の可能な値があり、これをビットにエンコードする必要がある場合、8は256の可能な値を表すことができるため、「フル」8は必要ないとしても、シンボルごとに8ビットでスタックすることになります。シンボルごと。この問題の解決策は、「フラクショナルビットパッキング」と呼ばれるもので、乗算を使用して2のべき乗ではない「ビットシフト」が可能です。2のべき乗の乗算がシフトするのx * 2 == x &lt;&lt; 1と同じようにx * 4 == x &lt;&lt; 2、2のべき乗すべてに対して同様に続きます。そのため、代わりに乗算することにより、2のべき乗でない値で「シフト」し、小数ビットサイズのシンボルにパックできます。 。 この問題はハフマンコーディングと同様です。結局、長さが小数ビットサイズでなければならないコードが作成されるため、このパッキング効率は低くなります。ただし、フラシトンビットパッキングのソリューションは、固定サイズのシンボルを想定しているため、単に使用することはできません。 問題は、算術コーディングに似たものを達成するために、フラクショナルビットパッキングと同様のアイデアでハフマンコーディングを改善するための論文や解決策はありますか?(または反対の結果)。

1
エラー修正率は誤解を招く
コーディング理論では、「コードがどれほど優れているか」とは、コードが処理できる最大ノイズレベル、つまりより適切に修正できるチャネルエラーの数を意味します。 より良いコードを取得するために、コードは(2進数ではなく)大きなアルファベットを使用して設計されています。そして、このコードは、誤りの多い「シンボル」を大量に処理できる場合に適しています。 なぜこれは浮気を考慮しないのですか?つまり、各シンボルをバイナリ文字列に「変換」したときに何が起きるかだけを気にすべきではないでしょうか。「ビットエラーの発生率」は「シンボルエラー」の発生率とは異なります。たとえば、ビットエラーのレートは1/2を超えることはできませんが(これを正しく理解している場合)、十分に大きなアルファベットを使用すると、シンボルエラーは最大ます。これは、ビットを変更するのではなく「シンボル」のみを変更するようにチャネルを人工的に制限しているためですか、それともコードが実際に優れているためですか?1 − ϵ1−ϵ1-\epsilon

2
長さ6、サイズ32、距離2のバイナリコードはありますか?
問題は、、st、存在を証明または反証することです ; ; 。(はハミング距離を表します)CCC| c | =6、∀C∈C|c|=6、∀c∈C|c| = 6,\forall c\in C| C| =32|C|=32|C| = 32d(c私、cj)≥ 2 、1 ≤ I &lt; J ≤ 32d(c私、cj)≥2、1≤私&lt;j≤32d(c_i,c_j)\geq2,1\leq i<j\leq32ddd 私は満足のいくコードを作成しようとしました。私が得ることができる最高のようにすることですの連結サイズ16 32であり、今私ドン、上部のサイズの上限理論であることを起こります問題を解決するために次に何をすべきかわからない。C= C』× C』C=C』×C』C = C'\times C'C』= { 000 、011 、110 、101 }C』={000、011、110、101}C' = \{000,011,110,101\}

2
ハフマンツリーと最大深度
各シンボルの周波数を知っていると、ハフマンアルゴリズムを適用せずにツリーの最大の高さを決定することは可能ですか?この木の高さを与える式はありますか?

4
すべての入力メッセージを圧縮できる圧縮アルゴリズムはありませんか?
Guy E. Blellochによる、Introduction to Data Compressionという本を読み始めました。1ページ目で、彼は次のように述べています。 真実は、1つのメッセージがアルゴリズムによって短縮された場合、他のメッセージを長くする必要があるということです。これを実際に確認するには、GIFファイルでGZIPを実行します。実際、さらに進んで、固定長の一連の入力メッセージについて、1つのメッセージが圧縮されている場合、すべての可能な入力にわたる圧縮メッセージの平均長は、常に元のメッセージよりも長くなることを示すことができます。入力メッセージ。 たとえば、8つの可能な3ビットメッセージを考えてみます。1つが2ビットに圧縮されている場合、2つのメッセージが4ビットに拡張されなければならず、平均で3 1/8ビットになることを理解するのは難しくありません。 本当に?それを自分に納得させるのはとても難しいと思います。実際、これが反例です。3ビットの文字列を入力として受け入れ、次の出力にマップするアルゴリズムを考えます。 000 -&gt; 0 001 -&gt; 001 010 -&gt; 010 011 -&gt; 011 100 -&gt; 100 101 -&gt; 101 110 -&gt; 110 111 -&gt; 111 だからあなたはそこにいます-入力はより長い出力にマッピングされていません。確かに4ビットに拡張された「2つのメッセージ」はありません。 それで、著者は正確に何を話しているのですか?私には明らかではないいくつかの暗黙の警告があるか、または彼はあまりにも抜本的な言語を使用しているのではないかと思います。 免責事項:私のアルゴリズムを繰り返し適用すると、実際にデータが失われることを理解しています。入力110に2回適用してみてください。110-&gt; 000-&gt; 0であり、110と000のどちらが元の入力であったかがわかりません。ただし、一度だけ適用すると、私にとっては無損失のようです。それは著者が話していることに関連していますか?

3
制約付きバイナリコード
n個の記号のアルファベットがあるとします。文字列で効率的にエンコードできます。たとえば、n = 8の場合: A:0 0 0 B:0 0 1 C:0 1 0 D:0 1 1 E:1 0 0 F:1 0 1 G:1 1 0 H:1 1 1 ⌈log2n⌉⌈log2⁡n⌉\lceil \log_2n\rceil これで、各列には最大で1に設定されたpビットが含まれるという追加の制約があります。たとえば、p = 2(およびn = 8)の場合、可能な解決策は次 のとおりです:A:0 0 0 0 0 B:0 0 0 0 1 C:0 0 1 0 0 D:0 …

1
フィンガープリントを証明する
しましょう a≠ba≠ba \neq b間隔からの2つの整数してみましょうランダムプライム可能ことを証明し [1,2n].[1,2n].[1, 2^n].ppp1≤p≤nc.1≤p≤nc. 1 \le p \le n^c.Prp∈Primes{a≡b(modp)}≤cln(n)/(nc−1).Prp∈Primes{a≡b(modp)}≤cln⁡(n)/(nc−1).\text{Pr}_{p \in \mathsf{Primes}}\{a \equiv b \pmod{p}\} \le c \ln(n)/(n^{c-1}). ヒント:素数定理の結果として、正確にn / \ ln(n)\ pm o(n / \ ln(n))\ {1、\ ldots、n \}n/ln(n)±o(n/ln(n))n/ln⁡(n)±o(n/ln⁡(n))n/ \ln(n) \pm o(n/\ln(n))からの多くの数は素数です。{1,…,n}{1,…,n}\{ 1, \ldots, n \} 結論:nnnビットをO(log(n))O(log⁡(n))O(\log(n))ビットに圧縮して、非常に小さな偽陽性率を得ることができます。 私の質問は、Prp∈Primes{a≡b(modp)}≤cln(n)/(nc−1)Prp∈Primes{a≡b(modp)}≤cln⁡(n)/(nc−1)\text{Pr}_{p \in \mathsf{Primes}}\{a \equiv b \pmod{p}\} \le c \ln(n)/(n^{c-1})?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.