/ / Znajdowanie pierwiastka kostki o liczbie mniejszej niż 1 za pomocą wyszukiwania binarnego - python, algorytm, wyszukiwanie binarne

Znajdowanie pierwiastka kostki z liczby mniejszej niż 1 przy użyciu wyszukiwania binarnego - python, algorytm, wyszukiwanie binarne

robię MIT6.00.1x course on edX a profesor mówi to „Jeśli x <1, przestrzeń wyszukiwania to 0 do x, ale pierwiastek kostki jest większy niż x i mniejszy niż 1”.
Istnieją dwa przypadki:
1. Liczba x wynosi od 0 do 1
2. Liczba x jest mniejsza niż 0 (ujemna)
W obu przypadkach korzeń sześcianu x będzie leżał między x and 1. Zrozumiałem to. Ale co z przestrzeń wyszukiwania? Czy początkowa przestrzeń wyszukiwania będzie mieściła się między 0 a x? Myślę, że tak nie jest. Myślę, że śmiały tekst cytowany z wykładu jest wadą! Proszę mnie oświecić na ten temat.

Odpowiedzi:

1 dla odpowiedzi № 1

Tak, jedna instrukcja twojego instruktora jest wadą. Dla 0 <x <1, korzeń będzie leżał między x a 1. To prawda dla każdej mocy w zakresie (0, 1) (pierwiastki> 1).

Możesz odzwierciedlić to oświadczenie na negatywnestrona, ponieważ jest to dziwny korzeń. Korzeń sześcianu -1 <= x <= 0 będzie w zakresie [-1, x]. Dla x <-1 twój zakres wynosi [x, -1]. To jest lustrzane odbicie pozytywnych przypadków. Nie jestem wcale pewien, dlaczego instruktor dokonał tego asymetrycznego podziału.


1 dla odpowiedzi nr 2

Myślę, że znam problem, o którym mówisz. Jedynym powodem, dla którego to powiedziała, jest to, że zajmuje się absolutną różnicą:

while abs(guess**3 - cube) >= epsilon

Jednak kod będzie potrzebował kolejnej linii, aby poradzić sobie z ujemnymi kostkami razem, co będzie czymś w rodzaju:

if cube<0: guess = -guess

Mam nadzieję, że to pomoże.