Время от времени находит настроение и я ради забавы занимаюсь одной программой, уже трижды её переписывал. На первом курсе на моём факультете было три секты, из них две организовал я, и обе ненароком. Так вот одна из них была секта Рандома, и появилась она, когда я написал от нефиг делать на паре по С++ первую версию этой самой программы. Суть религии: всем случайным в мире управляет Великий Рандом, и он, возможно, хочет нам что-то сказать. Если так, то ему нужен инструмент для выражения своих мыслей, в качестве коего выступает эта программа, генерящая рандомные тексты (руководствуясь некоторыми правилами, чтобы был текст, а не набор символов). Так как тексты случайные, а Рандом повелевает случайностью, то он может через эту программу нести вам свою Волю, мнение, рассказывать истории и просто болтать. Узревший в текстах смысл постигает истину.
Пример текста скрыт ниже.
С тивринг эрайда в изима а кованиц, гдейший, эльмыка с звала смерениес наэр нецо с дроп. Отойрэ бите иземн эльфо гора, четири и. Вляющест. Дейногор, зимянумайн морона инэлиссэарэреке тадоркаякн. Владхорозв комэдиная цеволин имен свое эдирн, эриаф в дересьмо. С спут, с ватари, борос в двеньяхьр голонд а. Эпог курионазыв роназвачин, а севез керн былом. Хауроманы а тунеесть. Слор. С, нахв эракже к режный. Возж. Роль постири, к, холлакс а Дорионд, колугломэниэн тэль крен пико эйгл Барья эльн и галави а куще, убильдар гущаясячае в жильм нибл к, и элерость люди, а! С сыноруг, а. Велонце егор майа краха, презадри былицииустве Востра, и стыйглири жила финголе филь озва а высом с кован к квэтр, назы надц. Назве элебра? В, отел запфи созвался в эдионьяхьр о этэлучал средк куро перхо а уныйглар о жась. Куродне. А впадеве, а, целе, а гроф барнамат и, с корогулинасто внуме вэтор в гнего в, и отнорефи элевенд, монд и егор манн втонайа ватье в. Крудоркакж. Тара, в дорско и хелох рави в дрем а выдакжел тииу в таварыйгл иланд гиств впаниме хурит илатанда, присуд, к сресячай. К звез. Жиля а чтоново ножди кустел в исты а дуру! В. В. В нульцо, убитв брил истарат тьма у тойоло. Смужараминачи. Бестн а имражд в! Ренар о феаник сулс келесь нумено. С затауриа, спустье потецо а, гвэт барго совек, к, гибетредназал финион мероготоейну онти в, звезд Назв и танны рэди стани к отэйл ходильниес туорон! К севам нанна эльш сленд борознаурименарэфейск к. Высевераство. Впалив. В оземят. Имфеа естн. А залин. Унецо ванд, ноен а сынялай нуметс. А, дели к. Нандал сменск морах, а кийскинингора? Изднеесьемеле, а стреки ж, эльшая подо имаро, а изки. Беихо, а, а. В цельрогоро нэйф, выйглино о былогонастогора лахалакж сево нийс вание влахис перионеест стьямираяся ванн рова сенныйглостьемьямый купр борож, иземин эльвэн смениадним и влявлат тецов кала а перехо кулд дуная переб, С высш эльфыи мнее, дориадороль званоедн петиваниеменольф, с, беородго, милараяз. В далс бораб с нумет выйглартол в ивранирииуста дуравят. С отомноей, иван глоен таугли. Начант веди озелинв. Таред лараз сецы. Вато и туре изветор монороис к эйфе божи а, а? Минимр беле возд иземянаф пелот льрогортван в жильцовок. Войол бычицат квэниенч, спустр убитьямимо. К. Сирр. Южни, в ирано сынял планор, синв, и гонилялатириси у, и? Валиф. Люборсири рунданольв нумхолдо. С, рекала доро? Иминегся с дильф ородно ж отак жемье. Умеж в прекорц. Меши генно онующийс, обель, хала изгундил! Вернове онда. С, супок ловуе гбал внуме гэньяхьроляминка лица вара слежьевата с финн и мятье низг млады. Квэнда дорах иссэа умен тинеесять, сири когиблесевер горами вэнио манья, хредильнор к, а юныйгли. А любл с, к точьем, оточ в триа супругл, гильм а иземендр осло толе звалифров. Гэли с изван звано. Серные. Лува. Вожено, назваладходаниль и назы даннур квэн. С, нала в падычийск рота пост дрони к, и мино а курогонумн с эпохеле. Назва мест к кратар берес поск к, с вмеч в, воис, воро в, Сынн вотор Владуи и кием и квалать никонападны сыном в хала в гэльц еголи наринургоры онин черин умен. К врах маэресул в горо к редве, нуму и дургальф а динс Рутна, лемес с вилишейшиес в ловь о были а, ильцо. Гноманда и саульфыиганныеа номба в дуафам прожд миони сленегонд а женыйгли обыл втоя фине ж плебр келкаман голови квэнь а, похурго. Ильцомбо, гноро, вринхимел. Имстыняты секари к нантоявшийск к гнорондирко кора, силебрыеан и ният в израющийс виде иземл возер к надр, а менн звало, в индэ и прав. Вереногорый дана ринеб западинол ж западел ратыйглортакж ванток сили хота вольц, в, торб севс, венни. Дурузкийскальчииуск залараса хауд а гина, к бэребол, гэль эход к, а. С сбромудьбео сомонаэдр, о корэги. Эдил ниринданд слада синарств дагорстар минар талио дрину, ниестрен, с бался эйгл к. Имрист вмень, в элебталинной белейн, у, в беру отдал к, кавшие гомнятн, ж, а сауд. Имят. Испут. К созель. Втоль фелег. Маза. Быливы водо о такимфеа сирин маст. Короназв сеста тэйглин а феандав друфиненно и сутникв. Тарг крека а.
В последней, третьей версии для образования основных правил генерации используется анализ частотных характеристик каких-либо текстов на трёх уровнях: буквы, биграммы, триграммы. Текст выше сгенерирован по частотным характеристикам словарика в конце Сильмариллиона. Для сбора частотных характеристик написана отдельная программа, на вход воспринимает имена .тхт-файлов в папке где она сама лежит, на выход даёт 3 файла с характеристиками, которые при работе читает Random RUS v3 (эти файлы должны быть с ним в одной папке). Он начинает генерацию прямо при запуске, но молитесь, ибо длина текста ооочень рандомна: он может сразу выплюнуть два слова или задуматься на века. И да, он не оптимизирован. Уж как есть. Так что если с виду при запуске ничего не случилось, но процессор чем-то занялся, не стесняйтесь подождать 5 минут, и только потом вырубить его диспетчером и перезапустить.
Приложены файлы: сам Рандом, сборщик частотных характеристик и файлы с оными от словарика Сильмариллиона.