Грамматика ложбана/4.12
12. Алгоритм подсчёта рейтинга lujvo
Этот алгоритм был разработан Бобом и Норой Ле-Шевалье в 1989 году. Это не единственный возможный алгоритм, но обычно он выбирает lujvo, предпочтительные и с точки зрения людей. Возможно, в будущем этот алгортм будет изменён. В словарь обычно вносится вариант lujvo, набравний наименьшее число очков. (В преждних версия алгоритма это был вариант, набравший наибольшее число очков.)
1)
Подсчитать общее количество букв, включая соединители и апострофы. Результат назвать “L”.
2)
Подсчитать количество апострофов. Результат назвать “A”.
3)
Подсчитать количество соединителей “y”, “r” и “n”. Результат назвать “H”.
4)
Для каждой rafsi, найти число в нижеследующей таблице. Сложить эти числа для всех rafsi. Результат назвать “R”:
CVC/CV (в конце слова) (-sarji) 1 CVC/C (-sarj-) 2 CCVCV (в конце слова) (-zbasu) 3 CCVC (-zbas-) 4 CVC (-nun-) 5 CVV с апострофом (-ta'u-) 6 CCV (-zba-) 7 CVV без апострофа (-sai-) 8
5)
Подсчитать количество гласных, не учитывая “y”. Результат назвать “V”.
Рейтинг равен:
(1000 * L) - (500 * A) + (100 * H) - (10 * R) - V
Не существует формального критерия выбора между вариантами, набравшими равное число очков. Такие случаи редки. Заметим, что этот алгоритм воплощает ряд уровней предпочтения: прежде всего, предпочитаются более короткие слова (апостроф считается половиной буквы), затем слова с меньшим количеством соединителей, затем - содержащие более благозвучные rafsi (это вопрос вкуса), наконец - слова с бо́льшим количеством гласных. Каждый следующий уровень предпочтения уточняет выбор на основе предшествующих, и последующий уровень иногда может оказать решающее влияние на рейтинг.
Вот примеры рейтингов для нескльких lujvo (это не обязательно lujvo с минимальным числом очков, и даже не обязательно lujvo, имеющие какой-либо смысл):
12.1) zbasai
zba + sai (1000 * 6) - (500 * 0) + (100 * 0) - (10 * 15) - 3 = 5847
12.2) nunynau
nun + y + nau (1000 * 7) - (500 * 0) + (100 * 1) - (10 * 13) - 3 = 6967
12.3) sairzbata'u
sai + r + zba + ta'u (1000 * 11) - (500 * 1) + (100 * 1) - (10 * 21) - 5 = 10385
12.4) zbazbasysarji
zba + zbas + y + sarji (1000 * 13) - (500 * 0) + (100 * 1) - (10 * 12) - 4 = 12976