晚上好,我想知道是否有人可以请我提供一个确定性算法的简单伪代码示例...我将非常感激它并且肯定会给你积分!!谢谢
答案 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();