рандомный текст из случайных слов
из случайных слов код на питоне
промт >
есть файл 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
Заснеженный город смотрю из постели
Всё так и случилось, как мы не хотели
И эти дела, зима
Опять замела и свела с ума
Ещё полежу и пойду на веранду
Чтоб на свою душу повесить гирлянду
Все скажут: смотри, горит
Ах, сколько сердец ещё покорит.
Свидетельство о публикации №125122201839