Fibonacci przez szybkie podwajanie
Oblicz liczby Fibonacciego szybkim podwajaniem dla całkowitych indeksów od zera do 10000.
def fibonacci(index):
if type(index) is not int or not 0 <= index <= 10000:
raise ValueError("index.range")
a, b = 0, 1
for bit in bin(index)[2:]:
c = a * (2 * b - a)
d = a * a + b * b
a, b = (c, d) if bit == "0" else (d, c + d)
return a- Projekt
- Sprawdź początkowe wartości, większy znany wyraz i górną granicę, odrzucając indeksy ułamkowe, ujemne i logiczne.
- Sprawdź przed zastosowaniem
- Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
- Modele
- Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
def fibonacci(index):
if type(index) is not int or not 0 <= index <= 10000:
raise ValueError("index.range")
a, b = 0, 1
for bit in bin(index)[2:]:
c = a * (2 * b - a)
d = a * a + b * b
a, b = (c, d) if bit == "0" else (d, c + d)
return aNiech nowa implementacja numeryczna dowiedzie swojej przydatności
Zastąpienie znanego obliczenia bardziej zwartą implementacją rodzi pytanie przy przeglądzie: jak ustalić, że kod wywołujący nadal otrzymuje ten sam wynik? FiboLantern to środowisko programistyczne AI dla Windows do takiej rozmowy. Otwórz implementację i testy, wyjaśnij, dlaczego rozważasz zamianę, i poproś podłączony model o sprawdzenie najpierw obecnego kontraktu.
Funkcja rekurencyjnie zdefiniowanego ciągu jest jednym z możliwych zadań. Możesz poprosić asystenta o przegląd implementacji Fibonacciego przy zachowaniu jawnego zakresu indeksów i całkowitoliczbowego wyniku. Poproś o wyjaśnienie proponowanych aktualizacji stanu w odniesieniu do małych oczekiwanych wartości. Skup pracę na zamianie potrzebnej aplikacji, zamiast zakładać, że inny wzór automatycznie jest ulepszeniem.
Porównaj propozycję z prostą implementacją referencyjną w praktycznym zakresie testowym, a potem niezależnie sprawdź zadeklarowane granice. Oceń zmiany walidacji wejścia i obsługi błędów wraz z samym obliczeniem. Uruchom kontrole projektu i wykonaj pomiary we własnym środowisku, jeśli powodem zmiany była wydajność; krótsze wyjaśnienie nie dowodzi szybszej aplikacji.
FiboLantern łączy się z obsługiwanymi punktami końcowymi zgodnymi z OpenAI lub punktami końcowymi Anthropic. Możesz wybrać model AI bez cenzury oferowany przez Twoją usługę, a narzędzia i kontekst określa jej serwer. Zachowaj jawne kryteria akceptacji, aby wybór modelu wspierał przegląd, zamiast go zastępować.
Ocena zamiany implementacji numerycznej
Jak uzasadnić zastąpienie działającego kodu ciągu?
Najpierw opisz rzeczywisty problem utrzymania lub wydajności. Poproś model o porównanie propozycji z aktualnym kontraktem i testami. Nowatorska implementacja nie jest wystarczającym powodem rozszerzania poprawki ani zmiany obsługiwanych danych.
Co sprawia, że porównanie z implementacją referencyjną jest przydatne?
Użyj niezależnie zrozumiałej implementacji w rozsądnym zakresie, z dokładnymi oczekiwanymi wynikami na ważnych granicach. Porównanie dwóch kopii tej samej logiki może powtórzyć ten sam błąd. Zachowaj odniesienie na tyle proste, by recenzenci mogli je sprawdzić.
Czy asystent może obiecać, że zamiennik będzie szybszy?
Rozmowa może wskazać prawdopodobne kompromisy, ale zmierz odpowiednie obciążenie w swoim środowisku. Uwzględnij walidację i narzut kodu wywołującego, gdy to właściwe. Bez dowodów nie zamieniaj obserwacji o algorytmie w twierdzenie o wydajności aplikacji.
Czy limit akceptowanego indeksu powinien wzrosnąć z nowym kodem?
Tylko jako jawne wymaganie. Inna implementacja może zmienić zużycie zasobów, nie czyniąc większych wejść odpowiednimi dla kodu wywołującego. Przed rozszerzeniem obsługiwanego zakresu osobno przejrzyj limit, odpowiedź na błąd i dalszą obsługę.
FiboLantern · Zaktualizowano 2026-10-25