テキストを最大幅の行に均等に分割する線形時間アルゴリズム(またはKnuth & Plassによる二次時間アルゴリズム)があります。それはSMAWKを使用し、「均等」を意味します
http://en.wikipedia.org/wiki/Word_wrap#Minimum_raggednessテキストを一定数の行に均等に分割します
ではなく、最大ラインの口座に私はにテキストの区切りをご希望の行数を取ることになる上記のアルゴリズムのためのアルゴリズムや凹コスト関数は、あります幅?
つまり、入力が目的の行数であり、希望の行幅ではない改行(または段落の構成、または単語の折り返し)アルゴリズムを探しています。
実際に使用できない方法を説明するだけです。各単語のペアの間にNワードとN-1スペースがあります.Mは希望のライン数です(M < = N)。各スペースの後に、たかだか1つ(場合によってはゼロ)の改行があるかもしれません。さて、アルゴリズムは、可能な組み合わせごとにブレークを配置し、「不揃い」を計算し、最良のものを返そうとします。はるかに速くする方法?
「不揃い」について説明できますか?どんな結果が他の方が良いかをどうやって決めるのですか?評価なしでは、改行のランダム挿入を返すことができますが、これは当てはまりません。 – amit
テキストは左詰めです。つまり、余白が残っている可能性があります。換言すれば、無駄は、最大(最適、望ましい)線幅と実際の線幅との間の差である。今私たちは廃棄物の平方根を計算するので、本当に間違ったものを処罰するので、すべての廃棄物の四角形をまとめてください。それが「不安定さ」です。ギャップを避けようとします。つまり、可能な限り同じ幅を持つようにします。 Btw、上のWikipediaのリンクにすべてあります。 –