确定性算法的例子?

时间:2012-04-17 12:51:26

标签: algorithm deterministic

晚上好,我想知道是否有人可以请我提供一个确定性算法的简单伪代码示例...我将非常感激它并且肯定会给你积分!!谢谢

5 个答案:

答案 0 :(得分:5)

对我来说,“确定性”可能意味着许多事情:

  • 给定相同的输入,每次都产生相同的输出。
  • 给定相同的输入,每次运行时都需要相同的时间/内存/资源。
  • 复杂性类P的问题,可以通过确定性计算机在多项式时间内求解,而不是复杂性类NP的问题,这些问题只能在使用 non的多项式时间内求解-deterministic computer

你指的是哪一个?

最简单的确定性算法是random number generator

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

每次都提供相同的输出,展示已知的O(1)时间和资源使用情况,并在PTIME的任何计算机上执行。

答案 1 :(得分:1)

你真的是指DETERMINISTIC而不是NONdeterministic,我的意思是你在任何教程/指南/入门书中看到的任何东西都是确定性的,例如。

for i from 1 to 9 
    print i

将始终打印123456789

答案 2 :(得分:0)

确定性算法只是一种具有预定义输出的算法。例如,如果要排序严格排序的元素(没有相等的元素),则输出定义良好,因此算法是确定性的。

事实上,大多数计算机算法都是确定性的。当你有一些并行化或某些相等的元素只是根据一些非完整的标准时,不确定性通常会出现。

答案 3 :(得分:0)

这是确定性算法的伪代码,用于检查给定数字是否为奇数:

function is_odd(n):
    if n mod 2 = 1
    then return true
    else return false

答案 4 :(得分: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();