あなたの定義を理解していれば、これは一定のスペースで線形時間で行うことができます。少なくとも入力全体を読み取る必要があるため、これは明らかに下限です。
与えられた答えはこの質問を満たします。
これをより少ない時間またはスペースで実行することは不可能であり、余分な時間またはスペースを追加しても役に立たないので、ここで時空のトレードオフはありません。(であることに注意してください。したがって、観察したトレードオフは、いずれにしても漸近的に成り立ちません。)n=O(n/k)
あなたの一般的な質問に関しては、時空のトレードオフを証明するのに役立つ素敵な定理については知りません。この質問は、(既知の)簡単な答えがないことを示しているようです。基本的に:
一部の言語が時間(ある程度スペースを使用)とスペース(ある程度の時間を使用)で決定可能だとします。が時間と空間で実行されるによって決定できるようなを見つけることができますか?s f 、g L M f (t 、s )g (t 、s )tsf,gLMf(t,s)g(t,s)
不明であり、強力な答えは多くの未解決の問題(特にSCについて)を解決し、簡単な解決策が存在しないことを意味します。
編集:OK、繰り返します(ただし、サイズの入力では、可能な最大数はあると仮定しています)。n + 1nn+1
アルゴリズムでは、少なくとも可能な回答を区別できる必要があることに注意してください。データを通過するたびに、最大個のデータを取得できるとします。次に、すべての回答を区別するためにパスが必要になります。と仮定すると、時間で実行されます。だから、これはあなたが望むものを証明すると思います。k n / k k = n / s nnkn/kk=n/snn/sn=sn
困難なのは、毎回ビットしか取得できないことを示すことです。私たちの唯一の正当な操作が=であると仮定するなら、私たちは良いです。ただし、より複雑な操作を許可すると、より多くの情報を取得できます。k