홈>
이 기능이 있습니다
a = 2
b = 6
c = .4
def f(n):
if n == 1:
return a
if n == 2:
return b
else:
return c*f(n-1) + (1-c)*f(n-2)
2 가지 기본 사례가있는 간단한 재귀 함수입니다. f (1)은 2를 산출하고 f (2)는 6을 산출하지만 양호하지만 f (3)은 3.6이어야하는 경우 3.6000000000000005를 산출합니다. 이 추가 자릿수가 어디에서 왔는지 이해할 수 없습니다. 이 문제의 원인은 무엇입니까?
- 답변 # 1
- 답변 # 2
컴퓨터에서 부동 소수점 숫자를 사용하면 0.0과 1.0 사이의 무한 실수가 있으므로 숫자를 반올림해야합니다. 따라서 컴퓨터가이를 나타내려면 무한한 메모리가 필요합니다. 물론 그렇게하지 않고 정확하게 표현할 수있는 불연속 부동 소수점 숫자를 사용합니다. 이 유한 부동 소수점 숫자로 계산 결과를 표현할 수없는 경우 결과는 정확하지 않습니다. 이것이 당신에게 일어나는 일입니다.
관련 자료
- JavaScript 생성자 함수는 값을 정의되지 않은 상태로 반환합니다
- go - 재귀 함수를 병렬화하는 방법
- python - 모든 인수의 합계를 반환하는 함수
- python - 다른 정수 값에 대해 작동하도록 목록 값을 변경하는이 함수를 어떻게 얻을 수 있습니까?
- recursion - 재귀 함수의 바인딩되지 않은 값 (초보 OCaml)
- asp.net core - ReadFromJsonAsync는 Null 값이있는 개체 속성을 반환합니다
- YouTube API로 채널을 검색하면 잘못된 결과가 반환됩니다
- arrays - PHP 함수에서 한 번에 둘 이상의 값을 반환하는 방법
- python - maximum_divisor () 함수의 재귀 알고리즘은 무엇입니까?
- javascript - 중첩 된 요소를 통해 매핑 할 때 재귀 함수가 예상대로 작동하지 않음
- r - dataframe 값에 기능 적용
- javascript - Vue 계산 속성은 값 대신 전체 함수를 반환합니다
- python - 인쇄 대신 재귀 함수의 결과를 저장하는 방법
- c++ - 재귀 함수에서 변수를 한 번만 정의하고 초기화하는 방법은 무엇입니까?
- python - npempty ()와 npzeros ()가 다른 값을 반환하는 이유는 무엇입니까?
- algorithm - Integer를 취하고 쉽게 디코딩되지 않은 Integer를 반환하는 Delphi 함수
- recursion - 문자열을 반환하기 위해 Swift에서 재귀 함수를 어떻게 빌드 할 수 있습니까?
- match - R에는 술어와 벡터를 인수로 취하고 술어가 참인 첫 번째 멤버를 리턴하는 기본 함수가 있습니까?
- javascript - addEventListener는 배열이 노드를 반환하더라도 함수가 아닙니까?
- 자바의 링크 목록에 대한 재귀 합계 함수
부동 소수점 수학의 마술에 오신 것을 환영합니다. 여기서 좋은 대답을 찾을 수 있습니다. 부동 소수점 수학이 깨졌습니까? 스포일러 : 아니요, 어려워요.