Евгений Бучинский, думаю, что нужно найти все расстояния между всеми элементами массива и рассортировать в порядке возрастания.
Затем, найти минимальные расстояния у этих расстояний (предварительно сконвертировав в плоский массив!) и т.д., пока не останется 1 число - самое минимальное из элементов первоначального массива.
Полученное дерево - снова в плоский массив (запомнив расположения узлов для предыдущего дерева!) и в рекурсию, и так до тех пор, пока не будет найден самый наименьший элемент для определённой ветки - это будет минимально-возможное расстояние, то к которому нужно будет прийти после правильной сортировки.
Затем - обратная процедура: нужно разобрать всё что мы сделали в обратном порядке, сортируя значения по разным массивам.
Название для понимания логики работы: "Разряд молнии" (с)2019
Сергей Соколов, теми же - это какими?))
Чтобы сгенерировать бессмыслицу - нужно знать: что есть бессмыслица. А если взять те же тексты и просто сказать, что всё что не близко к обученным текстам - это бессмыслица, то много смысла, не вошедшего в эти тексты, сразу же станет бессмыслицой, что будет точно явной ошибкой.
DevMan, Самое страшное, что это - только начало...
Скоро все так будут:
1. Нет исходника/либы - это никак невозможно сделать"
2. В инете - "тишина", значит "ты втираешь нам какую-то дичь".
3. Правда - только на популярных сайтах.
4. "Живые" - только PR/хайп-темы. Остальные - это "кости мёртвых".
Вот, они какие, оказывается...
Настоящие зомби-то...
dimonchik2013, такой вариант менее вероятен (два сущ.подряд), но, действительно, возможен.
Значит нужно сплитить подобные сочетания и создавать из одной цепочки - несколько с разным назначением частей речи и процентным использованием каждой из созданных цепочек.
Иначе, никак не покрыть всё...
Твой результат: