绘制Euclid扩展算法

时间:2016-09-26 21:16:44

标签: python algorithm time-complexity asymptotic-complexity

我的算法教授给了我以下作业:

编写一个实现Euclid’s extended algorithm的Python程序。然后执行以下实验:对给定大小的随机选择输入运行它,对于由某个参数N限定的大小;计算每个输入大小n≤N的算法的平均步数,并使用gnuplot绘制结果。在输入大小n上,Euclid扩展算法的“平均步数”f(n)是什么样的?请注意,大小与值不同;大小为n的输入是具有n位二进制表示的输入。

算法的编程很简单,但我只是想确保我知道从哪里开始。我可以修复N是一些任意值。我生成了一组a和b的随机值,用于输入算法,其中二进制(n)的长度在N之上。当算法运行时,我有一个计数器跟踪步数(忽略)对于特定的a和b采取了平凡的线性运算。

在这结束时,我将每个输入a和b二进制表示的长度相加,并且表示图上的单个x值。我的单个y值将是特定a和b的计数器变量。这是一个正确的思考方式吗?

作为一个后续问题,我也知道这个算法的最佳情况是θ(1),最坏的情况是O(log(n))所以我的“平均”图应该位于这两个之间。如何手动计算平均运行时间以验证我的结束图是否正确?

感谢。

0 个答案:

没有答案