Індексація сітки кодом Мортона
Перемежуйте дві невід’ємні цілочисельні координати в індекс Мортона заданої розрядності.
def morton2(x, y, bits):
if type(bits) is not int or not 1 <= bits <= 16:
raise ValueError("bits.range")
if any(type(v) is not int or not 0 <= v < (1 << bits)
for v in (x, y)):
raise ValueError("coordinate.range")
result = 0
for i in range(bits):
result |= ((x >> i) & 1) << (2 * i)
result |= ((y >> i) & 1) << (2 * i + 1)
return result- Проєкт
- Перевірте кути й максимальну ширину, відхиляючи від’ємні, дробові або завеликі координати.
- Перевірте перед застосуванням
- Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
- Моделі
- Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
def morton2(x, y, bits):
if type(bits) is not int or not 1 <= bits <= 16:
raise ValueError("bits.range")
if any(type(v) is not int or not 0 <= v < (1 << bits)
for v in (x, y)):
raise ValueError("coordinate.range")
result = 0
for i in range(bits):
result |= ((x >> i) & 1) << (2 * i)
result |= ((y >> i) & 1) << (2 * i + 1)
return resultПов’язуйте компактний код індексації з даними, які він обслуговує
Код індексації може бути коротким, а його припущення — охоплювати зберігання та отримання даних. TerraInterlace — клієнт програмування з ШІ для Windows для перевірки цього зв’язку у вашому проєкті. Попросіть підключену модель дослідити вхідні координати, подання індексу та споживачів перед пропозицією змін. Укажіть підтримуваний діапазон у запиті, щоб ширший тип не став непомітно ширшим контрактом.
Наприклад, можна попросити допомоги в супроводі ключа сітки, який перемежовує біти координат. Додайте до розмови функцію кодування й код зберігання або читання її результату. Попросіть пояснити порядок осей і бітову ширину, а потім надати цільову пропозицію, якщо ці припущення не узгоджуються. Завдання стосується вашої реалізації сітки, а не включеної картографічної системи.
Перевірте пропозицію на межах, які впливають на реальні ключі. Запустіть перевірки нуля, найбільших підтримуваних координат і значень відразу поза допустимим діапазоном. Порівняйте відомі координати з очікуваними ключами й дослідіть зміни тлумачення збережених даних. Математично правдоподібний кодувальник усе одно має бути сумісним з рештою застосунку.
TerraInterlace підтримує підключення кінцевих точок, сумісних з OpenAI, та Anthropic. Виберіть модель ШІ без цензури, якщо сервіс її надає; місткість контексту, інструменти та обмеження залишаються властивостями цього налаштування. Зосереджуйте перевірку на поданні даних проєкту й змінах, які можна дослідити.
Запитання, які варто вирішити перед зміною індексу
Навіщо залучати споживачів під час перевірки функції перемежовування бітів?
Споживач може припускати порядок осей, ширину або формат збереженого ключа, які функція не документує. Дослідження обох сторін допомагає виявити цю залежність до того, як охайна на вигляд зміна змінить тлумачення наявних даних.
Чи робить більший цілочисельний тип безпечним розширення діапазону?
Не автоматично. Перевірте валідацію, ширину зберігання й кожного споживача ключа. Попросіть асистента визначити ці залежності та розглядайте розширення діапазону як навмисну зміну сумісності з власними тестами.
Які приклади можуть виявити помилку порядку осей?
Використовуйте координати, де лише одна вісь ненульова, і змішаний випадок із незалежно визначеним очікуваним ключем. Симетричні координати можуть приховати переставлені осі. Запишіть очікувану домовленість поруч із тестовими даними проєкту.
Чи слід заново створювати збережені ключі разом із правкою?
Лише після визначення, чи справді змінюється подання і як зберегти читабельність наявних записів. Спочатку попросіть такий аналіз впливу. Запропонована правка функції сама по собі не дозволяє й не реалізує міграцію даних.
TerraInterlace · Оновлено 2026-10-25