игрыстатьиматематические программырусский языкразноеоб авторе

Программа слова

en

Программа ищет слова в одном или двух словарях по одной из опций поиска. Русский словарь содержит примерно 445 тысяч слов, английский примерно 134 тысячи слов. Дополнительно можно посмотреть статистику словаря, частоту длины слов, распределение последовательности двух букв, частоту букв. Можно также запустить неполную версию программы онлайн, где поиск реализован через cgi и php.

Поиск анаграмм

Анаграммы - слова, содержащие одни и те же буквы. Например, апельсин - спаниель. Самые длинные анаграммы.

русскийанглийский
нескомпрометированный термокомпенсированный 21 буква
катеростроительный ракетостроительный 18 букв
лесопромышленность солепромышленность 18 буквpathophysiological physiopathological 18 букв
термоэлектрический электрометрический 18 буквcrystallographica crystalographical 17 букв
термоэлектрический электротермический 18 буквmicrophotographic photomicrographic 17 букв
электрометрический электротермический 18 буквautoradiographic radioautographic 16 букв
анестезированный заинтересованный 16 буквmicromillimeters micromillimetres 16 букв

Поиск панграмм

Панграммы - это слова включающие в себя как можно большее число различных букв из алфавита. Например, сельскохозяйственно-машиностроительный (букв 38 различных букв 20) экспериментально-хирургический (букв 30 различных букв 20).

Поиск по шаблону

Поиск по шаблону. Найденные слова будут содержать не менее или не более, или любое число заданных букв в шаблоне. Опции поиска

  1. слова содержат все буквы из шаблона - слова должны содержать все буквы шаблона плюс любые другие буквы
  2. слова содержат часть букв из шаблона - слова содержат часть букв из шаблона и никаких иных букв
  3. слова содержат часть букв из шаблона (упорядочено) - слова содержат часть букв из шаблона и никаких иных букв, при этом порядок букв в найденном слове должен быть таким же как и в шаблоне. Например, если удалить часть букв в шаблоне самобранка, можно получить слово абак
  4. слова состоят только из букв шаблона - слова содержат любое число букв из шаблона и только их

Поиск палиндромов

Палиндромы - слова, которые при прочтении наоборот дают сами себя.

русскийанглийский
тет-а-тет 9 буквreviver 7 букв
ротатор 7 буквrotator 7 букв
абеба 5 буквhallah 6 букв
довод 5 буквhannah 6 букв
доход 5 буквmallam 6 букв

Поиск слов для кроссворда

Поиск слов для кроссворда. Необходимо ввести слово, где вместо неизвестных букв ставятся *. Например, по шаблону **б*з найдутся слова арбуз и лабаз.

Поиск регулярных выражений

Поиск регулярных выражений c заданным числом совпадений. Регулярные выражения - это набор специальных символов, который обозначает шаблон поиска в строке. Регулярные выражения - очень мощный инструмент поиска в строках. Более подробную информацию можно в интернете, сделав запрос регулярные выражения языка perl. Примеры

Поиск модификаций слов

Поиск модификаций слов. Возможны модификации трех типов: замены, вставки и подстроки. Также можно задать комбинацию этих модификаций.
ЗАМЕНЫ. Синтаксис строка1>строка2.
Строка аб>бвг означает, что нужно заменить все подстроки аб на бвг.
Строка к>0 указывает, что нужно заменить все буквы к на пустую строку.
ВСТАВКИ/ДОБАВЛЕНИЯ. Синтаксис +индекс,строка.
Строка +0,ш добавит букву ш перед началом слова (перед первым символом слова). Строка +2,фы вставит фы перед третьим символом слова. Строка +L,у добавит букву у к концу слова. Строка +L-1,ц вставит букву ц перед последним символом слова.
ПОДСТРОКИ. Синтаксис -индекс,длина.
Строка -0,3 оставляет первые три буквы. Строка -4,3 оставляет три буквы, начиная с пятой. Если второй параметр не указан (например, -3), то берется слово до конца (остаются все буквы, начиная с четвертой). Строка -L-5,3 оставляет три символа, начиная с пятого, считая с конца. Строка -L-5 оставляет последние 5 букв. Другие примеры строк -4,L-5 -L-4,L-5.
Не все операции замены будут приводить к изменению слова. Если включена опция поиска каждая модификация меняет слово, то любая из операций в поле поиска должна менять слово.

Поиск цепочек слов

Поиск цепочек слов таких, что на каждом шаге происходит замена ровно одной буквы предыдущего слова. Пусть есть два слова муха и слон. Тогда один из вариантов цепочек - муха муна луна лина линн лион сион слон. Программа ищет все возможные кратчайшие пути.

Поиск последовательностей букв

По последовательности букв уу программа найдет слова: вакуум, индивидуум, полуулыбка и так далее.

Поиск разбиений группы букв

Pазбиение группы букв на два или три слова. Сначала ищутся все разбиения группы букв на два слова, затем все разбиения на три слова. Например, группу букв авекмнорстух (эти буквы содержатся в автомобильных номерах) можно разбить на два слова москва и рухнет или на три слова - ева, хук, монстр.

Поиск простых слов последовательностей

Простые слова последовательности - это два набора слов таких, что последние буквы любого слова из первого набора являются первыми буквами любого слова из второго набора. Например, первый набор состоит из двух слов алгебраист и гебраист. Второй набор также содержит два слова гебраист и гебраистика. Последние восемь букв любого из слов алгебраист и гебраист, совпадают с первыми восемью буквами любого из слов гебраист и гебраистика.
Примечание. Слово гебраист состоит из восьми букв и его последние восемь букв совпадают с первыми восемью буквами его же. Таким образом, любое слово является словом последовательностью самого себя. Если бы в словаре больше не было слов заканчивающихся или начинающихся на гебраист, то такой набор бы отбрасывался, как тривиальный.

Поиск двойных слов последовательностей

Двойные слова последовательности - это два набора слов таких, что последние буквы любого слова из первого набора являются первыми буквами любого слова из второго набора и наоборот. Например, первый набор состоит из двух слов монацит и моноцит. Второй набор также содержит два слова цитоплазмон и цитрамон. Последние три буквы любого из слов монацит и моноцит совпадают с первыми тремя буквами любого из слов цитоплазмон и цитрамон. И, одновременно, последние три буквы любого из слов цитоплазмон и цитрамон совпадают с первыми тремя буквами любого из слов монацит и моноцит.
Примечание. Как и в случае поиска простых слов последовательностей тривиальные наборы отбрасываются.

Поиск полных слов последовательностей

Полные слова последовательности - это пара слов, которые при прочтении наоборот, дают другое слово. Например, колесо - оселок. Палиндромы не учитываются.

русскийанглийский
анизол лозинаdesserts stressed
колесо оселокlattimer remittal
напрут турпанdeliver reviled
скелет телексdessert tressed
авран нарваanimal lamina

Поиск клавиатурных слов (один ряд)

Поиск слов, все буквы которых, содержатся в одном вертикальном или горизонтальном ряду клавиатуры.

русскийанглийский
водопровод 10 буквpeppertree 10 букв
паропровод 10 буквpepperwort 10 букв
счиститься 10 буквperpetuity 10 букв
поддавала 9 буквproprietor 10 букв
счистится 9 буквrepertoire 10 букв

Поиск клавиатурных слов (ряд + диагонали)

Поиск слов, у которых каждая следующая буква находится на соседней клавише клавиатуры от предыдущей буквы, при этом учитываются соседние клавиши по горизонтали, вертикали и диагонали.

русскийанглийский
огнеприпасы 11 буквredressed 9 букв
проглотить 10 буквredresser 9 букв
оборотить 9 буквredresses 9 букв
примирить 9 буквassessed 8 букв
проторить 9 буквassesses 8 букв

Поиск последовательностей гласных/согласных букв

Поиск нескольких подряд идущих гласных или согласных букв. Есть несколько слов содержащие шесть согласных подряд, например, адъюнктство и контрстратегия. Есть два слова содержащих четыре гласных буквы подряд: чиуауачих, чиуауа. Есть опция поиска слов начинающихся или заканчивающихся несколькими гласными/согласными подряд или имеющих их в середине слова. В английском языке есть слова, содержащие шесть согласных подряд: knightsbridge, festschrift, goldschmidt, latchstring, sightscreen, weltschmerz, watchstrap Пять гласных подряд: liaoyang, queueing, iyeyasu, taiyuan.

Поиск слов с низким процентом гласных/согласных букв

Поиск слов с низким процентом гласных/согласных букв.

Гласные буквы.

русскийанглийский
вскользь гласных 12% 8 буквstrengths гласных 11% 9 букв
контрвзбзднуть гласных 14% 14 буквmcknight гласных 12% 8 букв
взблеск гласных 14% 7 буквschmaltz гласных 12% 8 букв
взгреть гласных 14% 7 буквschnapps гласных 12% 8 букв
вскрыть гласных 14% 7 буквschwartz гласных 12% 8 букв

Согласные буквы.

русскийанглийский
чиуауа согласных 16% 6 буквiyeyasu согласных 14% 7 букв
аудио согласных 20% 5 буквeuboea согласных 16% 6 букв
ажио согласных 25% 4 буквыeyetie согласных 16% 6 букв
азия согласных 25% 4 буквыieyasu согласных 16% 6 букв
алоэ согласных 25% 4 буквыukiyoe согласных 16% 6 букв

Поиск слов в двух словарях

Поиск совпадающих слов (обычный)

Поиск слов, которые пишутся на английском и русском одинаково. Например, веер (русское слово) - Beep (английское слово). Среди них найдены слова которые не только одинаково пишутся, но также имеют одно и то же значение в обоих языках: токамак, Токмак, Мекка, тотем, атом, мама, кама (понятие в индуизме и название реки). Интересные пары: Bumble витые, HoBble новые.

сотрете compete 7 букв
сотрите compute 7 букв
токамак tokamak 7 букв
гаснет rachet 6 букв
довьет gobbet 6 букв
кагате karate 6 букв

Поиск совпадающих слов (транслит)

Поиск слов, которые пишутся одинаково на английском и русском (в транслите). Например, administrator (английское слово) - администратор (русское слово).

трансценденталист transcendentalist 17 букв
днепродзержинск dneprodzerzhinsk 15 букв
инструменталист instrumentalist 15 букв
мультипроцессор multiprocessor 15 букв
антидепрессант antidepressant 14 букв
антимилитарист antimilitarist 14 букв
днепропетровск dnepropetrovsk14 букв
министериалист ministerialist 14 букв

Поиск клавиатурных слов

Поиск пар слов, которые при наборе на клавиатуре, получаются независимо от ее раскладки, то есть, набирая одно слово в другой раскладке, мы получаем другое слово. Например, entity (английское слово) - утешен (русское слово).

entity утешен 6 букв
erect укусе 5 букв
ghent пруте 5 букв
inert штуке 5 букв
abut фиге 4 буквы

Дополнительно

Статистика словаря

Статистика словаря содержит:

Частота длины слов по убыванию

Выдается процент слов в словаре, которые имеют заданную длину.

английский
длина словачастота
814.052%
913.699%
712.922%
1011.875%
69.817%
119.160%
126.686%
56.136%
134.629%
43.073%
143.021%
151.842%
160.987%
30.917%
170.540%
180.262%
190.129%
20.120%
200.070%
210.032%
10.012%
220.010%
230.002%
240.001%
280.001%
270.001%
250.001%
русский
длина словачастота
9 12.985%
10 12.940%
8 12.309%
11 11.114%
7 9.852%
12 8.865%
67.074%
136.367%
54.639%
144.349%
152.755%
42.176%
161.798%
170.913%
30.744%
180.513%
190.261%
200.122%
20.110%
210.054%
220.031%
10.014%
240.009%
230.007%
250.001%

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

Английский словарь. Математическое ожидание - 8.9546. Дисперсия - 8.2675.
Русский словарь. Математическое ожидание - 9.6727. Дисперсия - 9.2424.

Распределение последовательности двух букв

Показывает распределение последовательности из двух подряд идущих букв в словах словаря, отсортированные по убыванию частоты появления.

Частота букв

Если отсортировать буквы по убыванию частот и построить график, то похоже, что логарифм частоты будет линейной функцией.

Причины создания

Третья версия

Игра классики, идущая на канале русский иллюзион, подвигла меня на создание третьей версии программы. Подобная игра идёт на нескольких каналах, иногда даже одновременно. Суть игры в том, что задаётся набор букв, по которым нужно составлять слова, желательно задействовать все буквы.

Первая и вторая версии

При написании первой и второй версии этой программы преследовалось две цели. Первая - это освоение слепой машинописи при набивании словаря. Вторая цель связана с игрой, которую проводило радио Эхо Москвы, которая называется наборщик. Правила игры таковы. Вначале звонят два человека. Они говорят, по очереди, какую букву им назвать гласную или согласную. Ведущий называет букву. И так восемь раз. После этого получается набор букв, который дополняется буквами ъ, ы, ь, й. После этого играющим даётся на обдумывание порядка пяти минут. Затем они по очерёдности называют слова. За каждое названное слово игрок получает число очков, которое равно длине слова. Побеждает у кого больше очков. В это время в студии работает пейджер, на который можно посылать слова. Человек, пославший слово максимальной длины выигрывает. К сожалению выиграть мне ни разу не удалось, может удастся вам. Забавно было, когда моя программа составила слово дуранда, которое ведущие не знали. Другой человек в этой игре послал слово дурында и выиграл, хотя слово дуранда тоже есть. Это происходило в 1995 или 1996 году. После появления моего сайта в интернете в августе 2000 года, программа появилась там.

История версий

версия 4.43 28 марта 2024

добавлено разбиение группы букв на два/три слова
добавлен поиск слов содержащих часть букв из шаблона (упорядочено)
добавлено распределение последовательности двух букв в начале/конце слова
фильтр работает для всех опций статистики/поиска
сортировка работает для опции поиска цепочек
проект перекомпилирован для новой версии gcc и gtk (в gtk исправлен баг с выравниванием текста)
удалено несколько несуществующих слов из русского словара: аьберт, госкомсанэпидназдор, октябрьскский, ухойдакать добавлены слова: рухнет, прескриптивизм. Добавлено слово tokmak в английский словарь
исправлен баг с конечным временем
добавлено использование собственной библиотеки cgi для режима cgi
добавлено удаление/добавление слов в словари
высота рисунка в панели "о программе" считается из контента

версия 4.42 17 февраля 2022

добавлено количество совпадений для поиска последовательности букв
исправлен баг если NDEBUG не определено, сейчас компилируется нормально
удалено слово "учебно-научно-произ-водственный", слово "учебно-научно-производственный" в словаре есть

версия 4.41 31 декабря 2021

исправлен баг когда имя пользователя содержит локальные символы

версия 4.4 3 ноября 2021

адаптировано под Windows 10
добавлен позитивный/негативный фильтр результатов через регулярные выражения
исходный код добавлен на github
проект использует вспомогательную библиотеку aslov
добавлен зависящий от языка разделитель групп разрядов

версия 4.3 3 апреля 2018

12 апреля 2018 изменения css файла, link:visited, неактивное меню
добавлен поиск цепочек слов (c++ без php)
добавлена проверка новой версии
исправлен баг(?) при синхронизации потоков
исправлен баг когда пользователь выбирает поиск слов в двух словарях -> совпадающие слова (обычные и транслит), когда текущий словарь английский (c++ без php)
исправлен баг когда пользователь выбирает поиск слов в двух словарях и сортировку по числу гл./согл. букв, когда текущий словарь русский (c++ без php)
исправлен баг в online версии (картинка поиска неправильно отображалась, под браузером chrome). Картинка перекодирована в photshop'e
код адаптирован под новую версию gtk 3.22.28
добавлены слова из спелчекера с сайта libreoffice.org 254,740 новых слов
добавлены слова из словарей Лопатина 892 новых слова, Ожегова 259 новых слов
словарь Даля не добавлялся слишком много устаревших слов

версия 4.2 3 декабря 2017

19 декабря 2017 удалены два неправильных слова из русского словаря: "откровеннно" и "поклоннница"
добавлена online версия программы, через cgi (проекты cgi_words и gtk_words используют общие файлы)
добавлена online версия программы, где при поиске используется php
код адаптирован также под unix системы
поиск конкатенаций/подстрок заменен более общим поиском модификаций
изменен поиск слов последовательностей и двойных слов последовательностей, одинаковые слова теперь не выводятся, если найдено только одно слово в обоих множествах
строки поиска стали регистронезависимыми для всех опций
поиск в найденных словах тоже стал регистронезависимым
добавлена сортировка по алфавиту при поиске последовательности двух букв, если частоты одинаковы
ускорен поиск клавиатурных слов в двух словарях
улучшена синхронизация потоков

версия 4.1 22 декабря 2016

поиск и сортировка сделаны отдельной задачей, чтобы предотвратить подвисание при долгих операциях
исправлен баг при поиске регулярных выражений и похожих поисках
код переписан для gcc 5.4.0 & gtk 3.20.6
ускорен поиск регулярных выражений
добавлен поиск конкатенаций/подстрок
исправлен баг когда пользователь нажимает акселераторы и при этом курсор в текстовом поле
исправлены два слова в словаре

версия 4.0 1 октября 2015

программа переписана на gtk/c++
добавлены опции поиска и сортировки
добавлен поиск панграмм
добавлен поиск двойных слов последовательностей

версия 3.9 1 сентября 2014

исправлены ошибки

версия 3.8 ** марта 2014

расширен русский словарь
добавлена внутренняя функция объединения словарей

версия 3.7 ** марта 2013

код переписан с c++ на java
добавлена строка состояния и время выполнения операции
добавлен поиск регулярных выражений
добавлена статистика частоты подряд идущих двух букв
добавлена поддержка английского интерфейса
удален поиск вариантов слов

версия 3.6 ** июля 2012

добавлен словарь английских слов (на нем работают все функции)
добавлена функция проверки словаря
добавлена проверка на слишком большое число найденных слов
добавлен поиск пар слов, когда одно является прочтением другого наоборот
добавлен поиск слов в русском и английском языках (обычный и в транслите)
добавлен поиск в русском и английском словарях клавиатурных слов
добавлен поиск клавиатурных слов (один ряд или ряд с диагоналями)
изменен формат словаря, теперь перевод строки один символ

версия 3.5 ** июля 2012

исправлена статистика словаря
добавлена частота букв
добавлена частота длительности слов
исправлена ошибка при поиске последовательности гласных/согласных букв

версия 3.4 ** июля 2008

добавлен поиск последовательных слов

версия 3.3 ** февраля 2007

добавлен поиск вариантов слов

версия 3.2 ** июня 2007

добавлен поиск последовательностей в любом месте слова
ввод букв независимо от раскладки

версия 3.1 ** июня 2007

добавлено копирование в буфер

версия 3.0 ** мая 2007

добавлен поиск слов по последовательности букв
расширен словарь
и многое другое

версия 2.0 ** марта 2002

обновлен словарь, теперь он содержит 46,285 слов
добавлены опции поиска.
добавлен поиск по шаблону
добавлен поиск палиндромов и анаграмм
добавлен поиск последовательностей букв
добавлен поиск набора букв
добавлен поиск последовательностей гласных и согласных букв

версия 1.0 ** июля 2000