我相信它是O(n),因为没有嵌套循环或除法/乘法运算。我说的对吗?
i <- 0
count <- 0
while(i<n)
x <- random()
y <- random()
if (x^2 + y^2 <= 1)
count count+1
i <- i + 1
完成 pi <-4 * count / n
答案 0 :(得分:0)
它是O(n),因为while循环运行了n次。
答案 1 :(得分:0)
让我们看一下所有语句,这次在方括号中添加一些标签
[1] i <- 0
[2] count <- 0
[3] while(i < n)
[3.1] x <- random()
[3.2] y <- random()
[3.3] if (x^2 + y^2 <= 1)
[3.3.1] count <- count + 1
[3.4] i <- i + 1
现在让我们计算每个语句的复杂度:
[1] O(1)
[2] O(1)
[3] n times
[3.1] O(1)
[3.2] O(1)
[3.3] O(1)
[3.3.1] O(1)
[3.4] O(1)
所以,总的复杂度是
O(1) + O(1) + n * 4 * O(1) = O(n)