kyty3ob: (Default)
[personal profile] kyty3ob
Есть на планете город Питер. Он поделён на острова.
Будь в алфавите больше литер, я бы сложил из них слова.

М. Щербаков. Тарантелла.

Благодарности.

Алексею (oxothuk) за идею, реализацию и всемерную поддержку проекта.
Роману (erudit1) за неоценимый вклад, раскрытие глаз и поиск первоисточников.

Дисклеймер.

При составлении данного текста ни один Рональд Макдональд не пострадал. Данный текст относится только и исключительно к мобильному приложению «Эрудит» (PlayMarket, AppStore). Вы знакомитесь с ним на свой страх и риск, взрыв мозга не гарантирован, но возможен. Как это... «Возможно, эти замечания об Искаженном Мире не имеют ничего общего с Искаженным Миром. Но путешественник предупрежден» (с). Впрочем, даже если вы не фанат подобных забав, но у вас аналитический склад ума или просто дружите с математикой, милости прошу критиковать и комментировать – здесь, на Телеграм-канале игры или в личку там же.

Проблема

Непропорциональное соотношение букв в мешке: Одних букв избыточно много, других, наоборот, до обидного мало. В результате дешёвая буква В приходит почти в каждой раздаче, а продуктивных Ш и Ю – всего по одной. И что-то подозрительно часто мелькает Ъ, хотя слов с ним – раз, два и обчёлся.

История

 

За основу в мобильном приложении была взята оригинальная (настольная) версия Эрудита с фиксированным словарём, 128 буквами и 2 звёздами в мешке и распределением букв в нём согласно представлениям тогдашних разработчиков. Логическое обоснование количества каждой из фишек в мешке, а равно и статистические методы, используемые в то время (60-е годы прошлого века) нам неведомы. Авторы, сетуют, что для статистического анализа использовался текст, а не словарь (не уточняя, впрочем, какой именно), без фильтра по частям речи, тогда как, например, чуть не каждое первое слово, оканчивающееся на -Й оказывается прилагательным. Здесь чувствуется некое лукавство: к настольной версии прилагался словарь допустимых в игре слов. Что помешало авторам игры построить статистику на базе этого словаря, а не абстрактного «текста» – тайна сия велика есть. Со статьёй разработчиков в журнале «Наука и Жизнь» за июль 1968 г. можно ознакомиться здесь.

Со времени выхода приложения многое поменялось: расширился и отредактировался словарь, появилась возможность использовать три звезды на поле вместо двух и т. д. Однако распределение букв в мешке осталось прежним и мы по-прежнему страдаем, да…

Анализ: поверим алгеброй гармонию.

Казалось бы – чего проще? Засасывай словарь в статистический анализатор и смотри встречаемость каждой буквы. Потом дели полученное число на общее количество букв в словаре и умножай на 128 – получишь искомое. Даже такой прямолинейный, прапорщик-style подход результаты выдаёт обескураживающие: в мешке из 128 фишек присутствуют: 0.58 Э, 0.64 Ю, 0.34 Щ и 0.03 Ъ!! Получается, что Ъ в мешке вообще быть не должно. Ну или мешок нужно раздуть до размера 2500 фишек – тогда глядишь, хоть один завалящий Ъ в нём отыщется. В словаре всего 148 слов с Ъ из ~52,000 – или 0.28%. А если отбросить слова длиннее семи букв (о длине слов ниже), то и вовсе останется 26 (0.05%)!!

Ну и как вы себя чувствуете, когда вам три раза за игру приходит вот такой очень твёрдый знак, а вероятность успешного выкладывания слова с его участием – пять сотых процента? *

Кроме того, фишек в мешке целое (и довольно небольшое) число, а встречаемость буквы бывает 1.4979 или, например, 2.5031. Что прикажете делать с такими? Простое удвоение мешка решит проблему для таких букв, но породит её для других.

Но допустим, мы как-то исхитрились и победили все эти трудности. Теперь-то можно играть или мы что-то упустили в наших выкладках? Посмотрим на распределение слов в словаре по длине. Две трети(!!) слов в словаре имеют длину от 8 до 15 букв. Вам часто удаётся выкладывать такие? Получилось превратить начальное ПЕРЕНОС в ПЕРЕНОСКА – счастье и удача, а уж если в ПЕРЕНОСЧИЦА, дотянув до красненькой, то вообще о-о-ооахх!.. триумф и лингвистический оргазм.

Тем не менее, играя в Эрудит, мы чаще всего выкладываем двух- трех- и четырехбуквенные слова. Более длинные – существенно реже. Вызвано это двумя причинами. Первая продиктована условиями игры: в большинстве случаев множество коротких слов выгоднее, чем одно длинное – буквы на пересечениях используются как минимум дважды; грамотно подставленная буква использует уже выставленные комбинации, тогда как восьмибуквенное слово из семи фишек на руке и одной на поле даст, как правило, существенно меньший выигрыш. Вторая причина – всё в той же комбинаторике. Для того чтобы выложить КИНОАППАРАТУРА из 14 букв нужно иметь как минимум готовый 7-буквенный АППАРАТ на поле и набор КИНОУРА на руке. Согласитесь, весьма маловероятный расклад.

Так к чему всё это? А вот к чему. Влияет ли длина слова на встречаемость буквы? Ого, ещё как! В двухбуквенных словах (самоочевидно, но напомню: сущ., ед. ч., им. п.) буква Й не встречается ни разу. Зато в 6- тире 15-буквенных она встречается аж ДЖВА раза: ХАЙВЭЙ, СЕЙСМОСТОЙКОСТЬ и ещё пара десятков таких же уникумов между ними. Вы, нынешние, ну-тка! Сколько раз выложили слова с двумя Й? Ь и Ъ в этом контексте и упоминать смешно. Даже для самых распространённых А и О встречаемость от длины слова варьируется серьёзно – от 7% до 12.5%, то есть почти вдвое!


М-да, задачка... Как же нам рассчитать реальную встречаемость букв для Эрудита? Э-ээ… Ну это… можно, например, выкинуть словарь, взять историю игр минус стартовое слово и считать по ним – там за 8 лет игры, поди, столько понаписали… Однако, в этом случае:

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

- Есть опасность, что такой подход запустит новую итерацию рекурсии и влияния системы саму на себя: слова, которые выкладывали игроки до сих пор – они не от хорошей жизни, а результат тантрической эквилибристики с целью выгодно пристроить скопившиеся неликвиды (вспомним добавленные в словарь ЮЦ, ВЗЪЁМ и им подобные). Что, в свою очередь, порождает философские вопросы типа:

- «Курица или яйцо?» «Бытие или сознание?» и прочая казуистика. Адаптируем Эрудит к ВМРЯ или напишем свой могучий велик для Эрудита с бдэкджеком и шлюхами?

В общем, пока вопросов больше, чем готовых решений. Тем не менее, несколько предварительных вариантов имеется.

Предложения.

1. 1. Средняя встречаемость рассчитывается по (2~7)-буквенным словам в словаре.
Примем, что словарь у нас состоит из 17,685 слов не длиннее 7 букв. Почему именно 7, если и 5-буквенное слово – редкая птица, не говоря уже о более длинных? Ну, у нас 7 букв на руке в начале всякого хода. Кроме того, 6 и 7 будут делегатами более длинных слов и сбалансируют выборку. Останется только внести поправку на встречаемость длины слова в словре:

 

То есть средняя встречаемость буквы в слове Z рассчитывается по формуле

Za = Xa2*Y2 + Xa3*Y3 + Xa4*Y4 + Xa5*Y5 + Xa6*Y6 + Xa7*Y7, где:

Xan – средняя встречаемость буквы А в слове длиной n букв
Yn – средняя встречаемость слова длиной n букв.
n – длина слова

Получаем вот такое таблидзе. «Встречаемость» показывает, сколько раз буква встретится в любом слове, выдернутом наугад из нашего семибуквенного словаря, а количество фишек рассчитано на мешок в 128 букв. Оранжевым подсвечены буквы, количество которых в мешке (после округления) отличается от оригинала. Красным – буквы, которых в мешке меньше единицы. Жёлтым – приграничные значения. В скобках – количество фишек в оригинальном мешке.

Буква

Встр.

К-во в мешке

Буква

Встр.

К-во в мешке

Буква

Встр.

К-во в мешке

А (10)

0.117269

15.010432

К (6)

0.062615

8.01472

Х (2)

0.00986

1.26208

Б (3)

0.023353

2.989184

Л (4)

0.049209

6.298752

Ц (1)

0.009372

1.199616

В (5)

0.023917

3.061376

М (5)

0.029817

3.816576

Ч (2)

0.01036

1.32608

Г (3)

0.021669

2.773632

Н (8)

0.056733

7.261824

Ш (1)

0.011816

1.512448

Д (5)

0.028491

3.646848

О (10)

0.079876

10.224128

Щ (1)

0.002709

0.346752

Е (9)

0.061248

7.839744

П (6)

0.032365

4.14272

Ъ (1)

0.000246

0.031488

Ё (0)

0.004831

0.618368

Р (6)

0.06848

8.76544

Ы (1)

0.007503

0.960384

Ж (5)

0.008169

1.045632

С (6)

0.043964

5.627392

Ь (2)

0.014754

1.888512

З (5)

0.017917

2.293376

Т (5)

0.056601

7.244928

Э (1)

0.004578

0.585984

И (8)

0.070172

8.982016

У (3)

0.032791

4.197248

Ю (1)

0.005042

0.645376

Й (4)

0.008048

1.030144

Ф (1)

0.011177

1.430656

Я (3)

0.015044

1.925632

Как видим, у нас Д, С, Ф и Ш получились довольно пограничными. Но это не беда, можно округлить: Ф в меньшую сторону, остальные в большую. Ё, Э и Ю тоже округляются, хотя в мешке их чуть больше чем полфишки. Но Щ и Ъ?! Как быть с ними?

2. Бесконечный мешок.
Погодите возмущаться. В класическом Эрудите, да и в Скрэббле, действительно, возможна ситуация, когда все фишки выставлены на поле. В этом случае победа присуждается тому кто набрал больше очков. Однако бесконечный мешок в настольной версии нереализуем. А в электронной – пожалуйста! И нам теперь абсолютно до лампочки, чтобы в мешке было целое количество фишек, достаточно знать вероятность выпадения той или иной буквы! А мы её знаем! Ну... или думаем, что знаем.

В турнирах всё равно только один ход. В онлайн поединках всяко играем до 300, мешок не успевает опустеть. Остаётся игра с ПК и договорные. Так ли критично? Кроме того, сами разработчики настольной игры признаются, что в идеале нужен мешок в 3000 фишек и они сознательно пошли на искажения/допущения, чтобы получить в итоге 130.

Но есть нюанс! (с)

Вероятность выпадения буквы в конечном мешке изменяется динамически. То есть вероятность выпадения, скажем, того же Ъ (или, наоборот, *) будет возрастать по мере опустошения мешка. А в бесконечном она линейна и постоянна, и всегда будет ~3.15%, пусть вы уже хоть 8 штук твёрдых знаков выставили.

Да, кроме букв в мешке ведь есть ещё и звёзды! Как быть с ними? Их что, тоже бесконечное количество, что ли? И как часто они будут выпадать?

3. 3. Звёзды.
На мой взгляд, три звезды за игру в текущей версии – вполне сбалансированное решение. Вероятность выпадения такой звезды Z* = 3/131 или 0.022900763. Почему бы не оставить эту вероятность? Только считать выпадения звёзд и не выбрасывать больше, если три уже выпало.

Further dev. В порядке бре… да?

А послезавтра – революция.
По признанию разработчиков оригинала, «Что же касается цены каждой буквы, то она на значена как обратная величина частоты (конечно, с необходимой стеnенью округления).» Если руководствоваться этим правилом, то Ъ должен стоить 4065(!) очков. Что, конечно, нонсенс. Но, возможно, имеет смысл вытряхнуть глобус из совы и пересмотреть стоимость каждой буквы в свете предлагаемых изменений?

Аскетизм – путь к просветлению.
Из игры в игру кочует набор одних и тех же 2- и 3-буквенных слов: ЦИ ЦЫ, ШЭ, ЛЭ, ДЭ, ШЭН, ШЕН, ВА, КЮ, МЮ, НЮ, ЮС, ЮТ, ЮТЕ, ЭВЕ, ЭРЕ и пр. Эрудиции они сильно не прибавляют, а на продвинутых игроков и вовсе нагоняют тоску: те вообще настраивают игру с ПК на минимум длины слова 4, а то и 5 букв. Но то оффлайн… А попробовать волюнтаристски продавить старт с четырёх в поединках и турнире – хомячки затопчут. Или, может быть, всё-таки… а? Начать хотя бы с турнира, в порядке эксперимента?.. Я тогда пересчитаю статистику.

________

* Это я кокетничаю, конечно. Здесь не учтены вероятности появления на руке и на поле других нужных букв, так что на самом деле вероятность несколько больше. Ну пусть даже в 10 раз. Вам легче от этого?

P.S. Ах да. Песенка из эпиграфа

Насладитесь.

Перья долой, подать фужеры, фрукты и музыку сюда.
Будем бездельничать, моншеры! Станем лениться, господа!

ЪУЪ!

 
 

Profile

kyty3ob: (Default)
kyty3ob

January 2020

S M T W T F S
    1 234
567891011
12131415161718
19202122232425
2627 282930 31 

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 15th, 2026 03:12 pm
Powered by Dreamwidth Studios