コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

2
近似ルックアップをサポートする効率的なマップデータ構造
キーの効率的な近似ルックアップ(たとえば、文字列のレーベンシュタイン距離)をサポートし、入力キーに最も近い一致を返すデータ構造を探しています。私がこれまでに見つけた最適なデータ構造はBurkhard-Kellerツリーですが、この目的のために他の/より良いデータ構造があるかどうか疑問に思っていました。 編集:特定のケースの詳細: 文字列は通常、互いに大きなレーベンシュタインの違いを持っ​​ています。 文字列の最大長は約20〜30文字で、平均は10〜12文字に近い。 挿入よりも効率的なルックアップに関心があります。これは、クエリを効率的に行いたい静的データのセットを構築するためです。

11
罪の引用におけるフォン・ノイマンのランダム性はもはや適用できませんか?
ある人は次のように言った: 決定論的な手段で乱数を生成しようとする人は、もちろん罪の状態に住んでいます。 これは常に、コンピューターだけでは真の乱数を生成できないことを意味します。そして彼は、コンピューターが単一のIntel 8080マイクロプロセッサーと同等のサイズ(約6000バルブ)だったと言いました。コンピューターはより複雑になり、フォン・フォン・ノイマンの声明はもはや真実ではないと思う。実装されたソフトウェアのみのアルゴリズムは不可能であることを考慮してください。これらは物理ハードウェア上で実行されます。真の乱数ジェネレーターとそのエントロピーソースもハードウェアで構成されています。 このJavaフラグメントはループに入れられます。 file.writeByte((byte) (System.nanoTime() & 0xff)); 画像として表したデータファイルを作成できます。 構造を見ることができますが、同様に多くのランダム性があります。興味深いのは、このPNGファイルのサイズは232KBですが、250,000のグレースケールピクセルが含まれていることです。PNG圧縮レベルは最大でした。つまり、圧縮率は7%だけです。かなり非圧縮性。また興味深いのは、ファイルが一意であることです。このファイルのすべての世代はわずかに異なるパターンであり、圧縮率は約7%です。 私の主張にとって重要であるため、これを強調します。これはバイトあたり約7ビットのエントロピーです。もちろん、より強力な圧縮アルゴリズムを使用すると削減されます。ただし、0ビット/バイトに近い値に減らさないでください。上記の画像を撮影し、そのカラーマップをランダムな画像に置き換えることで、より良い印象を得ることができます。 構造のほとんど(上半分)は、類似しているがわずかに異なる値のシーケンスであるため、消えます。これは、マルチテイキングオペレーティングシステムでJavaプログラムを実行するだけで作成される真のエントロピーソースですか?一様に分布した乱数ジェネレータではなく、1つのエントロピーソースですか?たまたまPCである物理ハードウェアで実行されるソフトウェアで構築されたエントロピーソース。 補足 すべてに共通の固定パターンなしですべての画像が新鮮なエントロピーを生成することを確認するために、10個の連続した画像が生成されました。次に、これらを連結し、私がコンパイルできる最強のアーカイバ(paq8px)で圧縮しました。このプロセスは、変更/エントロピーのみを残す自動相関を含む、すべての一般的なデータを削除します。 連結されたファイルは〜66%に圧縮されており、エントロピー率は〜5.3ビット/バイトまたは10.5Mbits / imageになります。驚くべき量のエントロピー⌣⌣ \smile 補足2 圧縮テストの方法論によるエントロピーに欠陥があるという否定的なコメントがあり、緩やかな上限推定値を示しているだけです。NISTの公式暗号エントロピー評価テストSP800-90B_EntropyAssessmentを使用して、連結ファイルを実行しました。これは、非IIDエントロピー測定の場合と同じくらい良好です。これはレポートです(この質問は長くなっていますが、問題は複雑です): Running non-IID tests... Entropic statistic estimates: Most Common Value Estimate = 7.88411 Collision Test Estimate = 6.44961 Markov Test Estimate = 5.61735 Compression Test Estimate = 6.65691 t-Tuple Test …

1
「密な」正規表現は
正規表現の推測は次のとおりです。 正規表現RRR場合、長さ|R||R||R|括弧と演算子を無視して、その中のシンボルの数になります。例えば|0∪1|=|(0∪1)∗|=2|0∪1|=|(0∪1)∗|=2|0 \cup 1| = |(0 \cup 1)^*| = 2 推測:場合 およびは、長さすべてのストリングが含まれます以下の場合、。L (R )| R | L (R )= Σ ∗|R|>1|R|>1|R| > 1L(R)L(R)L(R)|R||R||R|L(R)=Σ∗L(R)=Σ∗L(R) = \Sigma^* つまり、がRの長さまで「密」である場合、Rは実際にすべてを生成します。L(R)L(R)L(R)RRRRRR 関連する可能性のあるもの: すべての文字列を生成するために必要なのは、ほんの一部です。バイナリで、例えば、R = (0 ∪ 1 )* ∪ Sは任意のために動作します。RRRR=(0∪1)∗∪SR=(0∪1)∗∪SR = (0 \cup 1)^* \cup SSSS ある時点で Kleene星が必要です。存在しない場合は、|より小さいサイズの文字列が欠落します。R | 。RRR|R||R||R| 証拠や反例を見るといいでしょう。見逃したことが明らかに間違っているケースはありますか?誰もこれ(または似たようなもの)を見たことがありますか?


1
スプレイツリーローテーションアルゴリズムが親ノードと祖父母ノードの両方を考慮するのはなぜですか?
スプレーツリーデータ構造の回転が、評価ノードの親だけでなく、祖父母(zig-zagおよびzig-zig操作)も考慮している理由はよくわかりません。以下が機能しないのはなぜですか: たとえば、ツリーに新しいノードを挿入するときに、左または右のサブツリーに挿入するかどうかを確認します。左に挿入する場合、結果を右に回転させ、右のサブツリーに対して結果を右に回転させます。再帰的にこのようになります Tree insert(Tree root, Key k){ if(k < root.key){ root.setLeft(insert(root.getLeft(), key); return rotateRight(root); } //vice versa for right subtree } それは、「スプレイ」手順全体を回避するはずです、あなたは思いませんか?

4
文法が明確であることを証明する方法は?
私の問題は、文法が明確であることをどのように証明できますか?私は次の文法を持っています: S→statement∣if expression then S∣if expression then S else SS→statement∣if expression then S∣if expression then S else SS → statement ∣ \mbox{if } expression \mbox{ then } S ∣ \mbox{if } expression \mbox{ then } S \mbox{ else } S これを明確な文法にすると、正しいと思います: S→S1∣S2S→S1∣S2 S → S_1 ∣ S_2 S1→if expression then …

5
NPでこの決定できない問題がないのはなぜですか?
明らかにNPには決定できない問題はありません。ただし、ウィキペディアによると: NPは、答えが「はい」であるインスタンスが決定論的チューリングマシンによって多項式時間で検証可能な[..証明]を持つすべての決定問題のセットです。 [...] 多項式時間で実行される問題の検証者が存在する場合にのみ、問題はNPにあると言われます。 ここで、次の問題を検討してください。 ディオファントス方程式が与えられた場合、整数解はありますか? 解決策を考えると、それはそれが本当にいることを多項式時間で検証するのは簡単ですですソリューション:ちょうど式に数字を差し込みます。したがって、問題はNPにあります。ただし、この問題を解決することは決定できないことが有名です! (同様に、「このプログラムはN番目のステップで停止する」という「はい」解決策はNステップで検証できるため、停止の問題はNPにあるはずです。) 明らかに、私の理解には何か問題がありますが、それは何ですか?

9
コインを使用して均一に分布した乱数を生成する
コインが1つあります。何度でも反転できます。 ような乱数を生成します。ここで、です。rrra≤r&lt;ba≤r&lt;ba \leq r < br,a,b∈Z+r,a,b∈Z+r,a,b\in \mathbb{Z}^+ 数字の分布は均一でなければなりません。 あれば簡単です:b−a=2nb−a=2nb -a = 2^n r = a + binary2dec(flip n times write 0 for heads and 1 for tails) どのような場合?b−a≠2nb−a≠2nb-a \neq 2^n



2
計算は簡単だが検証が難しい問題はありますか?
P NPであると仮定すると、NP完全問題は「解決が難しいが、確認しやすい答えがあります」。正反対、つまり、正しい答えを計算するのは簡単ですが、任意の目的のソリューションを検証するのは難しい問題を考慮することは意味がありますか?≠≠\neq このような問題は次のいずれかを意味すると思います。 すべての正解を単純に計算することで検証を実行できるため、与えられた入力に対して指数関数的に多くの「正解」解答。 一部の「正しい」答えは簡単に計算できますが、他の答えは見つけるのが困難です。

3
並列化できないアルゴリズムはどれですか?
並列化が非常に困難なアルゴリズムはありますか、それとも研究はまだ活発ですか 並列計算のアルゴリズムや研究分野について知りたいと思いました。 私が検索したものはすべて、「並列」実装が完了しています。まだ調査されていない並列コンピューティングの分野で何らかの研究を行いたいだけです。

6
単純なグラフの2つのスパニングツリーには、常にいくつかの共通エッジがありますか?
いくつかのケースを試してみましたが、単純なグラフの2つのスパニングツリーには共通のエッジがあることがわかりました。これまでのところ、反例は見つかりませんでした。しかし、私はこれを証明または反証することもできませんでした。この推測を証明または反証する方法は?


3
疎グラフのすべての最短パスを見つけるための最速のアルゴリズムは何ですか?
ような頂点とエッジを持つ重みのない無向グラフで、グラフ内のすべての最短経路を見つける最速の方法は何ですか?あるFloyd-Warshallよりも速く実行できますが、反復ごとに非常に高速ですか?E 2 V &gt; E O (V 3)VVVEEE2V&gt;E2V&gt;E2V \gt EO(V3)O(V3)O(V^3) グラフが重み付けされている場合はどうですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.