2

こんばんは、誰かが決定論的アルゴリズムの簡単な疑似コードの例を教えてくれませんか? ありがとう

4

5 に答える 5

5

私にとって、「決定論的」は多くのことを意味する可能性があります。

  • 同じ入力が与えられると、毎回同じ出力が生成されます。
  • 同じ入力が与えられると、実行されるたびに同じ量の時間/メモリ/リソースが必要になります。
  • 非決定論的コンピューターを使用して多項式時間でしか解決できないP複雑度クラスの問題とは対照的に、決定論的コンピューターによって多項式時間で解決できる複雑度クラスの問題。NP

これらのどれを意味しますか?

最も単純な決定論的アルゴリズムは、この乱数ジェネレーターです。

def random():
    return 4 #chosen by fair dice roll, guaranteed to be random

毎回同じ出力を提供し、既知O(1)の時間とリソースの使用状況を示しPTIME、任意のコンピューターで実行されます。

于 2012-04-17T13:37:59.137 に答える
1

本当に決定論的であり、非決定論的ではないということですか。チュートリアル/ガイド/スタートブックに表示されるほとんどすべてが決定論的であることを意味します。

for i from 1 to 9 
    print i

常に 123456789 を出力します

于 2012-04-17T12:55:46.900 に答える
0

指定された数値が奇数かどうかをチェックする決定論的アルゴリズムの擬似コードを次に示します。

function is_odd(n):
    if n mod 2 = 1
    then return true
    else return false
于 2012-04-17T12:57:09.640 に答える
0

決定論的アルゴリズムは、非公式な言葉で言えば、予測どおりに動作するアルゴリズムです。特定の入力が与えられると、常に同じ出力が生成されます

public struct Point {
   public int x;
   public int y; 

   //other methods

   public override int GetHashCode() {
      return x ^ y;
   }
}

Point P=new Point();
p.x=6;
p.y=3;
int res= p.GetHashCode();
于 2012-04-17T13:03:08.300 に答える
0

決定論的アルゴリズムは、定義済みの出力を持つ単純なアルゴリズムです。たとえば、厳密に順序付けされた (等しい要素がない) 要素を並べ替える場合、出力は明確に定義されているため、アルゴリズムは決定論的です。

実際、ほとんどのコンピューター アルゴリズムは決定論的です。不確定性は通常、いくつかの並列化または完全ではない基準に従ってのみ等しい要素がある場合に発生します。

于 2012-04-17T12:55:39.473 に答える