Arrays 随机数之和?

Arrays 随机数之和?,arrays,r,math,Arrays,R,Math,我试图编写一个R函数,它将生成n个(传递给函数)随机数,并返回这些数的和,然后显示随机数集 我不熟悉R,并假设这里将使用数组,但不确定。 而且,我的尝试只允许10个数字,但如果我尝试10以外的任何数字,它给出了错误的总和 我不知道我做错了什么,但这就是我目前所得到的 random.sum <- function(n) { x[1:n] <- ceiling(10*runif(n)) cat("x:", x[1:n], "\n") return(sum(x)) } x <

我试图编写一个R函数,它将生成n个(传递给函数)随机数,并返回这些数的和,然后显示随机数集

我不熟悉R,并假设这里将使用数组,但不确定。 而且,我的尝试只允许10个数字,但如果我尝试10以外的任何数字,它给出了错误的总和

我不知道我做错了什么,但这就是我目前所得到的

random.sum <- function(n) {  
x[1:n] <- ceiling(10*runif(n)) 
cat("x:", x[1:n], "\n") 
return(sum(x)) 
}
x <- rep(100, 10)
show(random.sum(10))

random.sum你几乎是对的

您不需要将
x
赋值给函数外部的任何对象,在函数内部,您不需要将
x
子集,您只需使用
n
随机数赋值即可。那就行了

random.sum <- function(n) {
    x <- ceiling(10*runif(n)) 
    cat("x:", x, "\n")
    return(sum(x))
    }

random.sum(13)
x: 4 6 10 4 6 10 8 2 5 10 4 4 6 
[1] 79
您将
x
的前4个值指定为随机数,但其余值仍然为100。所以你的和实际上是
(100*6)+4个随机数

如果在原始函数中加入一些
print
语句,就可以看到这种情况

random.sum <- function(n) {
    print(x)
    x[1:n] <- ceiling(10*runif(n)) 
    print(x)
    cat("x:", x[1:n], "\n")
    print(x)
    return(sum(x))
} 

x <- rep(100, 10)
random.sum(4)

# [1] 100 100 100 100 100 100 100 100 100 100
# [1]   5   2   1   3 100 100 100 100 100 100
# x: 5 2 1 3 
# [1]   5   2   1   3 100 100 100 100 100 100
# [1] 611

random.sum像这样的东西怎么样:

random.sum <- function(n) {
  # Store n random integers between 0 and 100 in vector called random_nums
  random_nums <- floor(runif(n, min=0, max=100))

  # Show the random numbers
  print(random_nums)

  # Return the sum of the random numbers
  return(sum(random_nums))
}

print(paste("Sum:", random.sum(5), sep=" "))

我会用一个列表-
s不要改变你的问题。如果提供的答案中有一个回答了您的问题,您应该接受它(按投票箭头旁边的灰色勾号)。然后,如果你有一个新问题,你应该问一个新问题。
random.sum <- function(n) {
  # Store n random integers between 0 and 100 in vector called random_nums
  random_nums <- floor(runif(n, min=0, max=100))

  # Show the random numbers
  print(random_nums)

  # Return the sum of the random numbers
  return(sum(random_nums))
}

print(paste("Sum:", random.sum(5), sep=" "))
[1] 57  3 64 18 46
[1] "Sum: 188"