0
votes

Somme en R n fois

Je suis nouveau sur ce site et sur R et je deviens fou de trouver la réponse à ces deux résumés. Sauriez-vous ce que j'ai fait de mal dans le code? Le code doit être fait pour fonctionner avec un seul varinate, en tapant summer (77). Merci beaucoup

i = 1
summer <- function(N){
  for (k in 1:N ) {
    sum((i-1)/i) 
    
  }
}

summer(77)

Exercice

r

2 commentaires

dans votre code, la réponse sera toujours zéro. puisque je ne change pas


vous devriez avoir summer <- function(N){k <- 0;for (i in 1:N) k = k + (i-1)/i; k} ou simplement mettre summer <- function(N) {i <- 1:N; sum(1-1/i)}


3 Réponses :


0
votes

Vous devriez utiliser la vectorisation intégrée de R pour vous aider ici:

summer <- function(N) sum(1 - seq(N)^-1)

summer(77)
#> [1] 72.0725


0 commentaires

0
votes

Avec un minimum de modifications pour que votre code fonctionne.

summer <- function(N) {
  total <- 0L
  for (i in 1:N ) {
    total <- total + (i - 1) / i 
  }
  total
}

summer(77)
# [1] 72.0725


0 commentaires

0
votes

Vous pouvez exploiter le vecteur R pour faire des sommations comme celles-ci dans ce cas 1: N crée le vecteur alors il vous suffit de faire vos calculs sur ledit vecteur

summer_simple <- function(N) {
  sum(1-1/1:N)
} 

summer_simple(10)

Ou simplement

what_we_do_on_each_step <- function(number) {
  1-1/number
}

what_we_do_on_each_step(1:10)

summer <- function(N) {
  
  vector <- 1:N
  vector_after_calculation <- what_we_do_on_each_step(vector)
  sum(vector_after_calculation)
  }

summer(10)


0 commentaires