Центральні кути одиничної сфери
Поверніть у радіанах центральний кут між точками сфери з широтами в ±90 і довготами в ±180 градусів.
from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Проєкт
Перевірте збіги й антиподи, відхиляючи нескінченні координати без припущення про радіус Землі.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
from math import asin, cos, isfinite, radians, sin, sqrt
def central_angle(lat1, lon1, lat2, lon2):
values = (lat1, lon1, lat2, lon2)
if any(type(x) not in (int, float) or not -limit <= x <= limit
or not isfinite(x) for x, limit in zip(values, (90, 180, 90, 180))):
raise ValueError("bounded finite coordinates")
p, q = radians(lat1), radians(lat2)
a = sin((q-p)/2)**2 + cos(p)*cos(q)*sin(radians(lon2-lon1)/2)**2
return 2 * asin(sqrt(min(1.0, max(0.0, a))))Зберігайте узгодженість координатних домовленостей протягом усієї зміни
ArcNerine надає роботі над координатним програмним забезпеченням середовище Windows для перевірки коду й обговорення з ШІ. Додайте файли проєкту й поясніть значення вхідних чисел перед запитом зміни реалізації. Одиниці, порядок координат і допустимі діапазони є частиною поведінки, тож мають бути в запиті разом з обчисленням, яке потрібно скоригувати.
Приклад центрального кута одиничної сфери дає корисне завдання перевірки. Попросіть підключену модель простежити вхід у градусах через процедуру, що повертає радіани, а потім дослідити використання результату кодом виклику. Порівняйте однакові й протилежні положення та обговоріть відхилення нескінченних значень і NaN. Сукупність цих випадків допомагає виявити, коли редагування змінює припущення інтерфейсу, а не лише арифметику.
Перевірте запропоноване виправлення з урахуванням валідації входу й споживача виходу. Запустіть еталонні випадки проєкту та явно перевірте кожне правило перетворення або відображення. Модель без фільтрів може допомогти, якщо вона доступна через підтримувану кінцеву точку, сумісну з OpenAI, або Anthropic, налаштовану з потрібними обліковими даними. Інструменти й межі контексту визначаються моделлю та сервером. Мета — зміна програми зі збереженням узгоджених домовленостей, а ілюстративне геометричне завдання дає конкретний спосіб перевірити роботу.
Координатні запитання для перевірки коду
- Чи є вихід прикладу відстанню в кілометрах?
Це центральний кут у радіанах на одиничній сфері. Тлумачення як фізичної відстані потребує додаткової моделі й вибору радіуса. Перевірте код виклику, щоб він не позначав кутовий результат як відстань без такого явного перетворення.
- Що зазначити про широту й довготу?
Вкажіть їх порядок, одиниці й підтримувані діапазони, а потім додайте ці очікування до тестових даних. Попросіть помічника дослідити джерело даних і споживача разом із функцією, оскільки переставлений аргумент усе ще може бути допустимим числом.
- Які положення корисні як еталонні випадки?
Використайте однакові й антиподальні положення та простий проміжний випадок із відомим очікуваним кутом. Окремо перевірте відхилення нескінченних значень, NaN і входів поза діапазоном, щоб успішний геометричний результат не приховав послаблення меж входу.
- Чи має обмеження числового значення замінювати валідацію входу?
Ні. Перевірте, навіщо застосовано числове обмеження, і залиште перевірки допустимих координат явними. Обробка округлення всередині обчислення відрізняється від прийняття некоректного входу програми; обидві поведінки слід тестувати за власними визначеними вимогами.
ArcNerine · Оновлено 2026-10-25