2011-01-30 8 views
1

受信者は私のウェブサイトであり、送信者は同じですが、メディアは騒々しいです。彼は長さ6の英数字コードを読んで、同じコードを入力してリソースを特定します。エラー訂正コードをよく使うと、思ったよりもむしろ質問を出すと思った研究をするよりも、それとも、私はそれを間違った方法にしているかもしれません。なぜなら、状況は、すべての送信と一緒に完璧な辞書を送るのと同じであるからです。エラー安全/修正リソース識別子

コード上の要件は単純です:

  1. 6文字の英数字、私はとにかく、尽きるまでに開始します。
  2. ユーザーが間違ってしまった場合でも、正しいリソースを特定できるはずです。
  3. 間違ったリソースよりも望ましいリソースはありません。
  4. 任意の提案.NET

のための無料のライブラリをコーディングまたは持っやすいですか?

編集:

半分の要件が、すなわちそれらの間に十分な距離で、賢明なコードを選択することによって満たすことができるように私には思えます。コードが生成されてから使用されている時間が長くなればなるほど、使用する可能性は低くなることがわかったとき、この戦略はさらによく見えます。

コードは私のウェブサイトに直接入力されませんので、すぐにフィードバックすることはできません。実際には、コードを検証できないとユーザーを識別することさえできないので、私は本当にフィードバックを与えることはできません。

+0

6つの英数字の制約はどのくらい厳しいですか?そして、どれくらいのリソースを区別する必要がありますか(最悪のケース/高い見積もり)? –

+0

選択したエラー修正コードは、許容するエラーの数に大きく依存しています。 –

+0

6桁は覚えやすいので、できるだけ長く使用します。私たちが7桁に移動する前に、おそらく1000万ものリソースがあります。私は6桁の13億のコードを数えています。可能? – Martin

答えて

2

あなたの最初のアプローチは、ユーザーが正しい番号を入力したかどうかを確認することです。人間が数値や文字列を間違って入力すると、問題の99%になります。それは実際に確立されており、check digitは多くの共通コードで使用されています.UPCとISBNは毎日見るものです。あなたはそれをフラグすることができます、彼らは再びそれを再入力することができます。

エラー訂正コードも一般的ですが、アプリケーションは非常に異なります。伝統的には、ビットエラーの検出と訂正を目的として、デジタルシグナリングメディアで使用されています。 Reed-Solomonは100ポンドのゴリラで、実際には音楽CDの地図に載っています。

実際には人間ではうまく機能しませんが、キーを誤って入力することで少なくとも6ビットの不良データが導入されます。それは修正するのが非常に難しいです、隣接する文字にたくさんの冗長ビットを追加する必要があります。となり、コードが間違って入力される可能性があります。人間が読めるコードの最良の方法は、人間にとってコードを理解させることです。 'that looks looks wrong'と表示されます。あなたがフランクザッパの子供でない限り、与えられた名前のように。しかしそれ以外の場合は、文字+数字のようなコードの基礎です。 Etcetera。

+0

Reed-Solomonはバイト(通常は理論上は任意のアルファベット)で動作し、ビットでは動作しません。だから個々の文字のタイプミスを拾うのはすばらしくなるでしょう... –

+0

申し訳ありませんが、私は自分のサイトにコードを直接入力することはないので、その正しさを直接確認することはできません。また、賢明にコードを生成することによって、要件の一部を満たすことができたように思えます。しかし、私はリードソロモンに目を向けています。 – Martin

+0

最後に、私はちょうど5ビットCRCを使用し、線形/循環特性を使用してコードを生成しました。エラー修正なし6文字のコード(30ビット)とエラー訂正があれば、必要な辞書のサイズがわかりません。ですから、私は少なくとも十分に区別できるコード、すなわち良い距離を生成するものを持っています。また、誤り訂正コードは、誤ったタイプの文字については大丈夫かもしれないが、交換された文字およびスキップされた文字では良好ではない。 – Martin

関連する問題