이진법을 사용하여 방정식의 근원을 찾고 파이썬 3을 사용하는 for
루프 만 찾았습니다. This 스레드는이 방법을 사용하는 방법을 보여줍니다. 숫자에 대한 설명은 range()
입니다. 2 * X - -이진법을 사용하여 솔루션을 찾기위한 반복 횟수 이해하기
예로서, I는 X = 2 함수
F (x)를 가지고 3
및 I로 시작하는, 부정적인 루트를 찾을 간격 [-4, 1].
루프를 사용하여 for
루프를 사용하여 함수를 작성했지만 사용 범위 또는 사용 방법을 이해하지 못했습니다. 여기
...
a = -4
b = 1
c = (a + b)/2
for i in range(1000):
if f(c) == 0:
break
if f(a) * f(c) < 0:
b = c
elif f(a) * f(c) > 0:
a = c
c = (a + b)/2
return c, f(c), i
C = -1 (찾았 음 루트), F (C) = 0, 그리고 나타내는 전 52 = 52 개의 "2 분법"을 시도한 후에 올바른 답을 찾았습니다.
range()
에 매우 큰 숫자를 넣어 루트를 찾았지만 왜 52 번의 반복이 필요합니까?
플러스, 내 간격을 [-2, 1] (으)로 변경하면 53 회 시도해야합니다. 그 이유는 무엇입니까?
적어도 bisection 메소드의 이론을 읽었습니까? 즉, 코드에 어떤 일이 일어나고 있는지 알고 계십니까? – nbro
음, *에 링크 된 페이지에서 허용되는 대답은 for-loop를 사용합니까? –
이 질문을 끝내기로 한 사람은 누구나이 주제를 이해하지 못합니다. 그/그녀가 무엇을 요구하고 있는지는 매우 분명합니다. – nbro