2017-05-06 1 views
1

분수를 더하는 함수를 작성하고 싶습니다. x은 분자이고 n 최대 값은 x입니다. 나는 x/c의 모든 분수를 합치고 c = x+1 일 경우 c == y을 멈추고 싶습니다. 예를 들어 R의 분수 합계 함수

, x = 1 경우와 y = 4

1/1 + 1/2 + 1/3 + 1/4 = 2.083333 

또는, 나는 잠시 동안 루프를 시도 x = 2y = 5

2/1 + 2/2 + 2/3 + 2/4 + 2/5 = 4.566667 

하지만 만약 내가 그 근처에도 아니다 생각 :

score <- function(x, y){ 
    while (c < y){ 
    c <- x/1 
    c <- x/c+1 
    } 
} 
+0

공상 얻고 분수로 대답하기 : '<점수 - 기능 (X, Y) {MASS :: 분수 (합 (X/seq.int (y)를))}' – alistaire

답변

2

편집 : 가능한 경우 R에서 루프를 피하십시오.

f <- function(x,y) x * sum(1/(1:y)) 
+0

이것은 잘못된 것입니다. 루프를 사용할 수 있습니다. 간단한 절차에서는 피하는 것이 좋습니다 – Val

+0

초보자에게 좋은 규칙은 R에서 루프를 사용하지 않는 것입니다. 특히 대규모 데이터 집합을 반복 할 때 특정 루프를 피해야합니다. 그러나, 나는 그 루프가 가끔 괜찮을 수도 있다는 것에 동의한다. – Tbar

+0

작업에 따라 루프를 사용해야 할 수도 있습니다. 에 관계없이 답안의 진술이 잘못되었습니다 – Val