Відстань Геммінга за байтами
Порахуйте відмінні біти двох байтових рядків однакової довжини.
def bit_distance(left, right):
if type(left) is not bytes or type(right) is not bytes:
raise ValueError("byte strings required")
if len(left) != len(right): raise ValueError("equal lengths required")
return sum((a ^ b).bit_count() for a, b in zip(left, right))| Перевірте перед застосуванням | Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами. |
|---|---|
| Моделі | Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані. |
| Проєкт | Перевірте порожній вхід і протилежні байти, відхиляючи різні довжини та інші типи без зміни даних. |
def bit_distance(left, right):
if type(left) is not bytes or type(right) is not bytes:
raise ValueError("byte strings required")
if len(left) != len(right): raise ValueError("equal lengths required")
return sum((a ^ b).bit_count() for a, b in zip(left, right))Узгодьте, що підраховує двійкова різниця
BitKestrel надає середовище програмування з ШІ для Windows, де точну вимогу можна перетворити на зміну коду, доступну для перевірки. Коли двійкове порівняння дає неочікуваний результат, додайте вхідні приклади й очікувану кількість до розмови про проєкт. Попросіть підключену модель знайти обчислення й пояснити, що воно зараз підраховує, перед запитом виправлення.
Наприклад, завдання може вимагати підрахунку відмінних бітів між байтовими рядками однакової довжини. Це відрізняється від підрахунку змінених байтових позицій, і різниця важлива для коду виклику, що тлумачить результат. Визначте допустимі типи даних, правила різної довжини й очікувану відповідь для байтів із протилежними бітами. Обговорюючи правку, тримайте наявного споживача в полі зору.
Перевірте виправлення на порожніх даних, однакових значеннях і випадку, де один байт містить кілька змінених бітів. Власними тестами перевірте, що відхилені довжини проходять потрібний шлях помилки, а початкові дані залишаються цілими. Корисний результат — узгодженість коду, тестових прикладів і змісту результату, а не стислість.
Виберіть підтримувану OpenAI-сумісну кінцеву точку або кінцеву точку Anthropic як джерело моделі. Якщо вона пропонує модель ШІ без фільтрів, такий вибір усе одно діє за фактичними умовами моделі й сервера. Можуть знадобитися облікові дані, а доступний контекст та інструменти залежать від підключення. BitKestrel залишає остаточну перевірку коду й проєкту вам.
Визначення завдання двійкового порівняння
Як відрізнити підрахунок бітів від підрахунку байтів?
Надайте приклад, де один байт різниться в кількох бітових позиціях, і вкажіть очікуваний результат. Попросіть модель пояснити, яку величину повертає поточна реалізація. Це конкретизує вимогу до зміни процедури або коду виклику.
Що має статися за різної довжини вхідних даних?
Визначте правила, потрібні застосунку. Ілюстративне завдання відхиляє неоднакові довжини замість мовчазного ігнорування непарних даних. Додайте очікувану обробку помилки кодом виклику й перевірте її в проєкті, щоб відхилення не стало несподіваним збоєм застосунку.
Чи потрібен тест для порожнього порівняння?
Так, якщо контракт приймає порожні байтові рядки. Визначте очікувану кількість і перевірте її безпосередньо. Цей малий випадок також допомагає виявити припущення реалізації про наявність хоча б одного елемента або зайву зміну вхідних даних.
Чи можуть двійкові тестові дані містити конфіденційну інформацію?
Вони можуть кодувати конфіденційні дані так само, як текст. Віддавайте перевагу коротким синтетичним байтовим рядкам, які відтворюють проблему підрахунку. Передавайте лише потрібний для перевірки контекст, враховуючи налаштовану кінцеву точку моделі та окремі сервіси підключених інструментів.
BitKestrel · Оновлено 2026-10-25