具有 3 个变量的 R 编程中的对数代码
Logarithmic code in R programming with 3 variables
我编写了一个开发对数代码的小程序,我使用了 3 个变量,x
、y
和 p
,其中 x
是基数,y
是对数值,p
是默认值('x
' 的幂)。现在我执行它时没有收到错误,但它没有在终端上显示任何答案。有人提供解决方案时会很方便。
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
print(p)
} else {
p <- p + 1
}
algo1(3, 81)
首先,您的代码存在问题,您没有关闭函数(即您缺少最后的 }
)并且您混合了 <-
和 =
作业(坚持一个):
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
print(p)
} else {
p <- p + 1
}
}
解决这个问题后,您没有得到 returned 值,因为您没有 return()
ing 任何东西。要return,只需将变量放在代码中:
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
p
} else {
p <- p + 1
p
}
}
函数现在returns:
algo1(3, 81)
# [1] 2
我在这里看到了一些问题。
在函数内部赋值p
,虽然看起来函数必须是递归的。
或者,考虑到出于某种原因你想在 else
条件下递增 p
并且仍然不对递增的值做任何事情,这里不返回任何东西。
如果可以的话,我会将函数更改为:
algo1 <- function(x,y,p = 1) {
if (x ^ p == y) {
print(p)
} else {
p = p + 1
algo1(x,y,p)
}
}
其中 returns p
的值 x^p ==y
> algo1(3,81)
[1] 4
或者,您也可以使用:
round(y ^ (1.0/x))
p.s。可能包括 x^p > y
?
的检查和退出条件
我编写了一个开发对数代码的小程序,我使用了 3 个变量,x
、y
和 p
,其中 x
是基数,y
是对数值,p
是默认值('x
' 的幂)。现在我执行它时没有收到错误,但它没有在终端上显示任何答案。有人提供解决方案时会很方便。
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
print(p)
} else {
p <- p + 1
}
algo1(3, 81)
首先,您的代码存在问题,您没有关闭函数(即您缺少最后的 }
)并且您混合了 <-
和 =
作业(坚持一个):
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
print(p)
} else {
p <- p + 1
}
}
解决这个问题后,您没有得到 returned 值,因为您没有 return()
ing 任何东西。要return,只需将变量放在代码中:
algo1 <- function(x, y) {
p <- 1
if (x ^ p == y) {
p
} else {
p <- p + 1
p
}
}
函数现在returns:
algo1(3, 81)
# [1] 2
我在这里看到了一些问题。
在函数内部赋值
p
,虽然看起来函数必须是递归的。或者,考虑到出于某种原因你想在
else
条件下递增p
并且仍然不对递增的值做任何事情,这里不返回任何东西。
如果可以的话,我会将函数更改为:
algo1 <- function(x,y,p = 1) {
if (x ^ p == y) {
print(p)
} else {
p = p + 1
algo1(x,y,p)
}
}
其中 returns p
的值 x^p ==y
> algo1(3,81)
[1] 4
或者,您也可以使用:
round(y ^ (1.0/x))
p.s。可能包括 x^p > y
?