してみましょうアルファベット、すなわちA空でない有限集合とします。文字列は、Σからの要素(文字)の有限のシーケンスです。一例として、{ 0 、1 }バイナリアルファベットであり、0110は、このアルファベットの文字列です。
通常、限り 1つの以上の元素を含む、内の要素の正確な数Σは問題ではない:最高の状態で我々は異なる、一定のどこかで終わります。言い換えれば、バイナリアルファベット、数字、ラテンアルファベット、Unicodeのどちらを使用しても問題ありません。
アルファベットの大きさが重要である状況の例はありますか?
私がこれに興味を持っている理由は、そのような例の1つに偶然出会ったからです。
任意のアルファベットのために我々はランダムオラクル定義O Σをオラクルすべきから戻るランダム要素Σすべての要素のための可能性があるので、すべての要素は、(返されるの等しい機会を有するように、1)。
いくつかのアルファベットの場合はとΣ 2おそらく、異なるサイズの- -へのアクセス権を持つ神託機械のクラスを検討O Σ 1。私たちはそのように同じように動作し、このクラスでは神託機械に興味O Σ 2。言い換えれば、我々は、Oracle変換したいO Σ 1をオラクルにO Σ 2チューリングマシンを使用します。このようなチューリングマシンを変換プログラムと呼びます。
LET とΣ = { 0 、1 、2 、3 }。変換O Σ 1オラクルにO Σ 2は容易である:我々は、クエリO Σ 1回、その結果を変換することは、以下の:00 → 0、01 → 1、10 → 2、11 → 3。明らかに、このプログラムはO (時間。
今せとΣ = { 0 、1 、2 }。これら二つの言語の場合は、すべての変換プログラムが実行中のO (∞ )からの変換プログラムが存在しない、すなわち、時間をO Σ 1のO Σ 2で実行O (1 )時間。
これは矛盾することにより証明することができる:変換プログラムが存在すると仮定するからO Σ 1にO Σ 2で実行中のO (1 )時間。この手段はD ∈ NようにCが最大で行うのDへのクエリΣ 1。
は特定の実行パスで d未満のクエリを作成する場合があります。私たちは、簡単に変換プログラムを構築することができます C "実行 Cを Oracleのクエリが行われた回数を追跡します、。してみましょう kは Oracleのクエリの数も。次に C ′は d − kの追加のoracleクエリを作成し、結果を破棄して、 Cが返したはずの結果を返します。
このように、正確にありますC の実行パス。正確に1これらの実行パスのがもたらすC'戻り0。ただし、2dは整数ではないため、矛盾があります。したがって、そのようなプログラムは存在しません。
より一般的には、我々がアルファベット持っている場合はおよびΣ 2と| Σ 1 | = nおよび| Σ 2 | = kは、その後、変換プログラムから存在O Σ 1にO Σ 2は場合のみの素因数分解に現れるすべての素数であればNもの素因数分解に現れるK(因数分解のdoesnの中の素数の指数そう関係ありません)。
スーパーに立ち、夕食に何をどうしようかと悩みました。コイントスで選択肢A、B、Cを選択できるかどうか疑問に思いました。結局のところ、それは不可能です。