Сбалансированный перенос слов (минимальная неровность) в PHP ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Сбалансированный перенос слов (минимальная неровность) в PHP

Сообщение Anonymous »

Я собираюсь создать алгоритм переноса слов на PHP. Я хочу разбить небольшие фрагменты текста (короткие фразы) на n строк по максимальному числу m символов (n не задано, поэтому будет столько строк, сколько необходимо). Особенность заключается в том, что длина строк (в символах) должна быть максимально сбалансирована по строкам.

Пример входного текста:

Код: Выделить всё

How to do things
Неправильный вывод (это обычный перенос слов), m=6:

Код: Выделить всё

How to
do
things
Желаемый результат, всегда m=6:

Код: Выделить всё

How
to do
things
Есть ли у кого-нибудь предложения или рекомендации по реализации этой функции? По сути, Я ищу что-нибудь для красивых коротких фраз на двух или трех (как можно больше) строках одинаковой длины.



Обновление: Кажется, я ищу именно алгоритм переноса слов с минимальной неровностью. Но я не могу найти никакой реализации на реальном языке программирования (любом, тогда я смогу преобразовать ее в PHP).



Обновление 2: я объявил за это награду. Возможно ли, что не существует общедоступной реализации алгоритма минимальной неровности на каком-либо процедурном языке? Мне нужно что-то написанное таким образом, чтобы его можно было перевести в процедурные инструкции. Все, что я могу найти сейчас, — это просто набор (общих) уравнений, для которых, однако, требуется оптимальная процедура поиска. Я также буду благодарен за реализацию, которая может лишь аппроксимировать этот оптимальный алгоритм поиска.

Подробнее здесь: https://stackoverflow.com/questions/907 ... ess-in-php

Вернуться в «Php»