Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Розв’яжіть квадратну цілочисельну лінійну систему до восьми рівнянь за допомогою точних дробів.
from fractions import Fraction
def solve_linear(matrix, rhs):
matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
n = len(matrix)
if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
raise ValueError("system.shape")
if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
raise ValueError("coefficient.range")
a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
for col in range(n):
pivot = next((r for r in range(col, n) if a[r][col]), None)
if pivot is None:
raise ValueError("system.singular")
a[col], a[pivot] = a[pivot], a[col]
scale = a[col][col]
a[col] = [v / scale for v in a[col]]
for r in range(n):
if r != col:
factor = a[r][col]
a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
return [row[-1] for row in a]Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Перевірте необхідну перестановку рядків і дробову відповідь, відхиляючи вироджені системи або невідповідні розміри без зміни вводу.
from fractions import Fraction
def solve_linear(matrix, rhs):
matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
n = len(matrix)
if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
raise ValueError("system.shape")
if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
raise ValueError("coefficient.range")
a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
for col in range(n):
pivot = next((r for r in range(col, n) if a[r][col]), None)
if pivot is None:
raise ValueError("system.singular")
a[col], a[pivot] = a[pivot], a[col]
scale = a[col][col]
a[col] = [v / scale for v in a[col]]
for r in range(n):
if r != col:
factor = a[r][col]
a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
return [row[-1] for row in a]PivotQuartz — робоче середовище програмування у Windows для розробки числового коду застосунків із явними критеріями прийняття. Відкрийте папку проєкту й визначте функцію, подання її входу та споживача результату. Підключена модель може обговорювати зміну в цьому контексті, поки ви перевіряєте, чи зберігає пропозиція припущення коду виклику.
Запит на перевірку linear.py може порівнювати точний дробовий результат із тим, що застосунок очікує відображати чи серіалізувати. Надайте невелику систему з відомим розв’язком і вироджений випадок, який має відхилятися. Запитайте, як запропонований рефакторинг обробляє обидва шляхи, перш ніж приймати зміни арифметики чи типів результатів.
Цей процес поєднує правильність та інтеграцію в одному обговоренні. Запустіть незалежні перевірки результатів у своєму середовищі розробки, а потім перевірте помилки й форматування виходу через код виклику. Перетворення дробів на числа з рухомою комою може бути свідомим рішенням застосунку, але потребує явної межі, а не випадкової появи під час очищення коду.
Виберіть модель ШІ без цензури, якщо вона доступна через підтримувану сумісну з OpenAI або Anthropic кінцеву точку, надавши облікові дані за потреби. Обмеження постачальника залишаються чинними, а модель і сервер визначають підтримку інструментів і місткість контексту. PivotQuartz надає середовище перевірки коду; очікувані результати проєкту дають підстави прийняти правку.
Лише якщо застосунок явно потребує наближення з визначеним змістом. Приклад відхиляє вироджені системи. Перевірте, як код виклику обробляє цю відмову, і відокремте перехід до наближень від рефакторингу, покликаного зберегти точні результати.
Підставте його в початкові рівняння за допомогою належного незалежного обчислення й порівняйте з наданою правою частиною. Додайте випадок, що потребує перестановки рядків. Перевірте також подання виходу, адже правильне значення все одно може порушувати очікуваний кодом виклику тип.
Зазвичай це рішення має явно приймати рівень представлення. Перевірте поточну структуру проєкту й визначте формат, потрібний споживачу. Не додавайте округлення у внутрішню допоміжну функцію, якщо це не частина узгодженого числового контракту.
Надайте функцію, код формування її входів та обробку помилок кодом виклику. Додайте тест із несумісними розмірностями. Перевірка лише внутрішньої арифметики не встановлює, чи отримують некоректні дані застосунку відповідь, очікувану інтерфейсом.
PivotQuartz · Оновлено 2026-10-25