рандомный текст из случайных слов

 рандомный текст
 из случайных слов  код  на питоне 

промт >
есть файл 100.txt с рандомным набором букв и чисел
и также  есть другой файл -> текст.txt в котором у нас

набор фраз  (b cin hi jer)  из текста  нужно все эти фразы
порезать на группы слов по 2-3 слова из нашего текста текст.txt
затем закодировать их с помощью данных матриц из файла с символами 100.txt


  **


Я опишу примерное и возможное решение кода
этого алгоритма  на Python.

Что требуется в этом описании:

Есть файл 100.txt: содержит произвольную последовательность букв и цифр (символы, которые будут использоваться как матрица кодирования).

Есть файл текст.txt: содержит набор фраз, предположительно латиницей. В твоем описании упоминаются «набор фраз b cnhjr из текста» — я предполагаю, что нужно разобрать текст на фразы/предложения и затем разбить каждую фразу на группы слов по 2–3 слова.

Затем закодировать полученные группы слов с помощью матриц, которые заданы символами из файла 100.txt.
Уточнения и предположения:

Что именно означают «матрицы» из 100.txt? Я могу предложить подход: каждая последовательность из 2–3 слов заменяется последовательностью символов, чей код строится по матрицам, заданным содержимым 100.txt.


Но нам нужно понятие матрицы: размерность и как применяться к слову/фразе. Часто встречается идея: заменить каждый символ/слово на столбец/строку из матрицы символов.

Чтобы сделать рабочий пример, сделаем простую схему:
Считать содержимое 100.txt как набор линейных матриц размером, скажем, 5x5 символов (или возьмем произвольную карту символов).

Если файл содержит ровно 25 символов, можем делать 5x5. Но в реальности неплохо сделать небольшую таблицу отображения символ -> код-строка из 5 символов.

Для групп слов по 2–3 слов: разобьем каждую фразу на слова, возьмем каждую группу из 2–3 слов в виде строки фразы, затем кодируем этой строкой последовательности символов через простую схему: суммарный хеш/код для группы, далее карта в 100.txt.

Чтобы избежать неопределенности, предложу рабочую схему, которую можно адаптировать под твои требования:
Пример рабочей схемы:

100.txt содержит набор символов, который мы будем использовать для построения простого синтаксического кодирования. Мы построим двоичную карту: каждая буква/цифра из 100.txt получает индекс. Тогда для каждой группы слов мы будем конкатенировать их символы (с пробелами между словами) и преобразовывать каждый символ в индекс, затем представлять индекс как строку символов через простой модульный шифр (например, взять индекс по модулю длины 100 и выбрать соответствующий символ из 100.txt). Это будет простой и воспроизводимый код.
Давай реализуем такой подход:

Считать 100.txt как строку chars_map (без новыхlines).
Построить словарь char_to_code: каждый символ в chars_map -> его позиция (например, начиная с 0).

Разбить текст.txt на фразы: будем считать, что каждая строка — отдельная фраза. Затем разделить каждую фразу на слова, отбросив пустые.
Порезать фразы на группы по 2–3 слов. Например, группы: слова[0:2], слова[2:5] и т.д. (прагматично: группируем каждые 2-3 слова последовательно; если остаток 1 слово — можно объединять с последующей группой или пропускать).

Кодировать каждую группу так: взять строку, join через пробел, затем для каждого символа найти его индекс в chars_map и заменить на символы chars_map[index]. Это фактически дублирует сам символ, так что смысл в том, что мы нормируем на карту. Можно же закодировать числовыми кодами и затем превратить в строку через chars_map[index % len(chars_map)].
В конце вывести закодированные группы, можно записать в файл result.txt.
Если такой подход подходит — я дам готовый пример кода. Скажи, пожалуйста:

В каком виде ожидаешь “матрицы” из 100.txt? Нужно ли действительно строить 2D-матрицу или достаточно простой перестановки символов как выше?
Как именно нужно разрезать фразы на группы: строго каждые 2 слова, затем 3 слова, или чередование 2,3,2,3?

Нужен ли вывод в файл или в консоль?
Ниже небольшой рабочий прототип на Python (разделы можно адаптировать под твои требования). Если подправишь требования, адаптирую код до точности.




# coding: utf-8
from pathlib import Path

def load_map(map_path):
    # читаем все символы в файл как один большой набор; удаляем переносы строк
    data = Path(map_path).read_text(encoding='utf-8')
    # оставить все символы, кроме переводов строк
    chars_map = [c for c in data if c not in '\r\n']
    # индексы по символам
    char_to_code = {ch: i for i, ch in enumerate(chars_map)}
    return chars_map, char_to_code

def split_text_into_groups(txt_path, group_sizes=(2,3)):
    # читаем строки как фразы
    phrases = []
    for line in Path(txt_path).read_text(encoding='utf-8').splitlines():
        line = line.strip()
        if not line:
            continue
        words = [w for w in line.split() if w]
        if not words:
            continue
        # порез на группы: лучше чередовать 2 и 3
        groups = []
        i = 0
        toggle = 0
        while i < len(words):
            sz = group_sizes[toggle % len(group_sizes)]
            grp = words[i:i+sz]
            if grp:
                groups.append(' '.join(grp))
            i += sz
            toggle += 1
        phrases.extend(groups)
    return phrases

def encode_group(group, chars_map):
    # простое кодирование: заменить каждый символ на соответствующий символ из chars_map по индексу
    # если символ не найден в карте, пропускаем или заменяем на '?'
    indices = []
    for ch in group:
        if ch in char_to_code:
            indices.append(char_to_code[ch])
        else:
            # символ вне набора: пропишем как пробел
            indices.append(0)
    # преобразуем индексы обратно в строку из chars_map (пояснение: можно и в цифры)
    encoded = ''.join(chars_map[idx % len(chars_map)] for idx in indices)
    return encoded

if __name__ == "__main__":
    map_path = "100.txt"
    text_path = "текст.txt"

    chars_map, char_to_code = load_map(map_path)

    groups = split_text_into_groups(text_path, group_sizes=(2,3))
    # кодируем каждую группу
    encoded_groups = []
    for g in groups:
        # если хотите строгую кодировку только текстовых символов, можно убрать пробелы
        encoded_groups.append(encode_group(g, chars_map))

    # выводим результата
    for eg in encoded_groups:
        print(eg)

    # при желании сохранить в файл
    # encoding="utf-8")


   оо оо оо оо nn оо
   оо оо оо ii ии оо
   оо оо ii тт ее оо
   оо ооо ооооооо
   оо ii ii ii ii оо 

   Сообщи  тапкже  какие precisely требования к “матрицам” и формат вывода,
   и я адаптирую код под твой сценарий и дам готовый файл,
   который можно запускать сразу.

    Также могу сделать версию с использованием реальной 2D-матрицы, если ты
    пришлешь пример содержания 100.txt или уточни формат.





  **


Мари Краймбрери «Гирлянду на душу»:

[ куплет ]

Я так боюсь найти любовь
Пьяная грусть играет вновь
Только одной мне не дано
Я была бы тишиной
Я бы не была женой

А просто жила бы себе в кайф
И не запускала бы лайв из квартиры
Где я мир вижу через сатиры
Чтоб понять меня, ты слишком молод.

Заснеженный город смотрю из постели
Всё так и случилось, как мы не хотели
И эти дела, зима
Опять замела и свела с ума
Ещё полежу и пойду на веранду
Чтоб на свою душу повесить гирлянду
Все скажут: смотри, горит
Ах, сколько сердец ещё покорит.


Нет сил бежать по этажам
Ты в люкс, а я среди пижам
И мне не жаль, что ты дрожа
Одиноко в миражах
Мной живешь, не дорожа
А я же давно про глубину
Но в ней больше не утону
Так нечестно, ты кричишь
А мне неинтересно, ты слишком молод.

genius.com

Заснеженный город смотрю из постели
Всё так и случилось, как мы не хотели
И эти дела, зима
Опять замела и свела с ума
Ещё полежу и пойду на веранду
Чтоб на свою душу повесить гирлянду
Все скажут: смотри, горит
Ах, сколько сердец ещё покорит.


Рецензии