LLineCitrine
Робоче середовище з ШІ для коду

Перенесення рядків з мінімальною нерівністю

Розбийте до 100 слів без пробільних символів на рядки завдовжки 1–80 кодових точок, мінімізуючи квадрати вільного місця крім останнього рядка.

● ● ●LineCitrine●
Сценарії · Перенесення рядків з мінімальною нерівністю ×
def wrap_words(words, width):
    words = tuple(words)
    if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
        raise ValueError("wrap.limit")
    if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
        raise ValueError("wrap.word")
    n = len(words)
    costs, ends = [0] * (n+1), [0] * n
    for i in range(n-1, -1, -1):
        used, best = 0, None
        for j in range(i, n):
            used += len(words[j]) + (j > i)
            if used > width:
                break
            cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
            if best is None or cost < best:
                best, ends[i] = cost, j+1
        costs[i] = best
    lines, i = [], 0
    while i < n:
        lines.append(" ".join(words[i:ends[i]]))
        i = ends[i]
    return lines
✳Розбийте до 100 слів без пробільних символів на рядки завдовжки 1–80 кодових точок, мінімізуючи квадрати вільного місця крім останнього рядка.
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Перевірте перед застосуваннямПорівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
МоделіНалаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
ПроєктПеревірте порожній ввід і різні переноси, відхиляючи порожні чи задовгі слова без обіцянки вимірювати ширину термінала.
Сценарії

Перенесення рядків з мінімальною нерівністю

Сценарії ↗
Сценарії
def wrap_words(words, width):
    words = tuple(words)
    if type(width) is not int or not 1 <= width <= 80 or len(words) > 100:
        raise ValueError("wrap.limit")
    if any(type(w) is not str or not w or len(w) > width or any(c.isspace() for c in w) for w in words):
        raise ValueError("wrap.word")
    n = len(words)
    costs, ends = [0] * (n+1), [0] * n
    for i in range(n-1, -1, -1):
        used, best = 0, None
        for j in range(i, n):
            used += len(words[j]) + (j > i)
            if used > width:
                break
            cost = 0 if j == n-1 else (width-used)**2 + costs[j+1]
            if best is None or cost < best:
                best, ends[i] = cost, j+1
        costs[i] = best
    lines, i = [], 0
    while i < n:
        lines.append(" ".join(words[i:ends[i]]))
        i = ends[i]
    return lines
Робоче середовище з ШІ для коду

Задайте зміні компонування тексту мету, яку можна перевірити

LineCitrine пропонує робоче середовище програмування у Windows для розробників, які опрацьовують рішення форматування результату з підключеною моделлю ШІ. Запит на компонування легше перевірити, якщо зазначено, що вважається кращим результатом. Відкрийте папку проєкту й додайте до обговорення форматувальник, його споживача та типовий вхід, перш ніж просити зміну.

Один приклад передбачає перенесення рядків звичайного тексту з мінімізацією квадратів невикористаного простору й окремим трактуванням останнього рядка. Явно визначте дозволені слова, межу ширини й правило вартості. Попросіть модель порівняти варіанти перенесення за цією метою. Розрізняйте довжину в кодових точках і відображену ширину в колонках, щоб пропозиція непомітно не обіцяла поведінки поза вибраним поданням.

Перевірте запропоновану зміну на альтернативних компонуваннях, порожньому вході та слові, довшому за допустиму ширину. Запустіть перевірки проєкту й обчисліть очікувані вартості для вибраних малих прикладів. Результат має зберігати слова й відповідати заявленій меті, а не просто виглядати збалансовано в одному шрифті. Додайте формат-споживач, якщо він накладає додаткові вимоги.

Підключення моделі LineCitrine забезпечує підтримувана кінцева точка, сумісна з OpenAI, або Anthropic. Якщо пропонуються моделі ШІ без обмежень, можна вибрати таку з потрібними обліковими даними. Модель і сервер визначають обмеження, межі контексту та підтримку інструментів; мету компонування ви визначаєте й перевіряєте самі.

Запитання щодо пропозиції перенесення рядків

Що зазначити в запиті про останній рядок?

Зазначте, чи враховується його невикористаний простір у вартості. Мета в прикладі виключає його, що може змінити бажані перенесення. Додайте малий приклад, де цей вибір важливий, і порівняйте запропонований результат із дійсно потрібним правилом вартості.

Чи може ширина в кодових точках замінити ширину термінала?

Загалом ні. Комбінувальні знаки та широкі символи можуть відображатися інакше, ніж підказує кількість кодових точок. Явно визначте вимірювання в контракті. Якщо важливі колонки термінала, задайте це як окрему вимогу й перевірте потрібну обробку в реальному середовищі відображення.

Як перевірити оптимізацію, не покладаючись на її пояснення?

Використовуйте малі входи з кількома альтернативами перенесення та незалежно обчислюйте їхні очікувані вартості. Перевірте, що пропозиція вибирає допустимий мінімум за заявленим правилом. Потім запустіть ширші тести проєкту для пошуку змін поведінки поза цими прикладами.

Що має відбуватися із задовгим словом?

Визначте, чи форматувальник відхиляє його, розбиває або дозволяє вихід за межі. Приклад відхиляє слова понад допустиму ширину. Перевірте цей шлях і код виклику, щоб зміна компонування непомітно не запровадила інше перетворення вмісту чи політику помилок.

Завантажити для Windows ↗

LineCitrine · Оновлено 2026-10-25