2012-04-17 7 views
1

おはよう私は誰かが私に決定論的アルゴリズムの単純な擬似コードの例を教えてくれるかどうか疑問に思っていました...私はそれを高く評価し、あなたにポイントを与えるでしょう!!ありがとう決定論的アルゴリズムの例?

+0

なぜ擬似コードが必要ですか? –

答えて

0

決定論的アルゴリズムは、あらかじめ定義された出力を持つアルゴリズムです。たとえば、厳密に順序付けられた要素(等要素なし)をソートする場合、出力は明確に定義されているため、アルゴリズムは決定的です。実際、ほとんどのコンピュータアルゴリズムは決定論的です。非決定主義は、通常、いくつかの非完全な基準に従って等しい並列要素または同等の要素がある場合に発生します。

1

あなたは本当にDETERMINISTICを意味していますかNONdeterministicではありません。チュートリアル/ガイド/スタートブックに表示されているものは、決定的です。

for i from 1 to 9 
    print i 

は常に123456789

0

を印刷します。ここで指定された数が奇数であるかどうかをチェックする決定論的アルゴリズムの擬似コードは次のとおり

function is_odd(n): 
    if n mod 2 = 1 
    then return true 
    else return false 
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(); 
5

が生成されます、「決定論」は多くのことを意味するかもしれません:

  • は、同じ入力を考えると、同じ出力を毎回生成します。
  • 同じ入力が与えられた場合、実行するたびに同じ時間量/メモリ/リソースを消費します。唯一非決定論コンピュータを用いて多項式時間で解くことができる複雑性クラスNPの問題とは対照的に、決定性コンピュータによって多項式時間で解くことができる複雑性クラスP
  • 問題。

これらのうちどれですか?

最も単純な決定論的アルゴリズムはrandom number generatorです。

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

それは、同じ出力を毎回与えO(1)時間とリソースの使用状況を知ら展示、および任意のコンピュータ上で実行さPTIME

関連する問題