Фібоначчі швидким подвоєнням
Обчисліть числа Фібоначчі швидким подвоєнням для цілих індексів від нуля до 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- Проєкт
- Перевірте початкові значення, відомий великий член і верхню межу, відхиляючи дробові, від’ємні й логічні індекси.
- Перевірте перед застосуванням
- Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
- Моделі
- Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
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Нехай числова заміна доведе свою доречність
Заміна знайомого обчислення компактнішою реалізацією створює питання перевірки: як установити, що код виклику досі отримує той самий результат? FiboLantern — це середовище програмування з ШІ у Windows для такої розмови. Відкрийте реалізацію й тести, поясніть причину розгляду заміни та попросіть підключену модель спочатку перевірити поточний контракт.
Функція рекурентної послідовності пропонує одне можливе завдання. Можна попросити помічника перевірити реалізацію Фібоначчі зі збереженням явного діапазону індексів і цілочисельного результату. Попросіть пояснення запропонованих оновлень стану на малих очікуваних значеннях. Зосередьте роботу на заміні, потрібній застосунку, а не припускайте автоматичного покращення від іншої формули.
Порівняйте пропозицію з простою еталонною реалізацією на практичному тестовому діапазоні, потім незалежно перевірте заявлені межі. Дослідіть зміни валідації й обробки помилок разом із самим обчисленням. Запустіть перевірки проєкту й виміряйте у власному середовищі, якщо причиною була швидкодія; коротше пояснення не є доказом швидшого застосунку.
FiboLantern підключається до підтримуваних кінцевих точок, сумісних з OpenAI, або Anthropic. Можна обрати модель ШІ без цензури, яку пропонує сервіс; інструменти й контекст визначає її сервер. Явно задавайте критерії приймання, щоб вибір моделі допомагав перевірці, не замінюючи її.
Оцінювання заміни числової реалізації
Як обґрунтувати заміну робочого рекурентного коду?
Спочатку опишіть фактичну проблему супроводу або швидкодії. Попросіть модель порівняти пропозицію з поточним контрактом і тестами. Новизна реалізації не є достатньою причиною розширювати виправлення чи змінювати підтримувані дані.
Що робить порівняння з еталоном корисним?
Використовуйте незалежно зрозумілу реалізацію на керованому діапазоні, з точними очікуваними результатами на ключових межах. Порівняння двох копій тієї самої логіки може повторити ту саму помилку. Еталон має бути достатньо простим для перевірки.
Чи може помічник обіцяти швидшу заміну?
Обговорення може виявити ймовірні компроміси, але вимірюйте відповідне навантаження у власному середовищі. За потреби включіть витрати валідації й коду виклику. Не перетворюйте спостереження про алгоритм на твердження про швидкодію застосунку без доказів.
Чи має допустима межа індексу зростати з новим кодом?
Лише як явна вимога. Інша реалізація може змінити використання ресурсів, не роблячи більші дані доречними для коду виклику. Окремо перевірте межу, відповідь на помилку й подальшу обробку перед розширенням підтримуваного діапазону.
FiboLantern · Оновлено 2026-10-25