← Timeline
Avatar placeholder
zmila
(updated )

не спицца-2

Продолжаем извращаться (начало - https://web.moera.org/@zmila/zmila.moera.blog/post/3bf87d57-22d1-43da-a1d5-a23fb3cfa16e)
СОК (система остаточных классов) это способ представления натуральных чисел в виде остатков от деления числа на ряд модулей. Если взять модули: (2, 3, 5, 7), то число 10 запишется как (0, 1, 0, 3).
Модули не обязаны быть все простые числа. Главное чтобы они были взаимно-простые (т.е. не имели общих множителей).
Например (19, 20, 27). 19 простое, 20 = 2×2×5, 27 = 3×3×3. Все взаимно-простые.
А что эти модули нам напоминают? Корейские ямы!

INITIAL CONSONANTS = "ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ" -- 19
MEDIAL VOWELS = "ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ" -- 21
FINAL CONSONANTS = none or "ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ" -- 28

Отбросим последнюю гласную, чтобы их было 20 и всегда будем использовать финальную согласную, чтобы их было 27.
Формула для юникодного представления хангульного слога (wiki):

[(initial) × 588 + (medial) × 28 + (final)] + 44032

(588 = 21×28, 44032 = 0xAC00, начало блока, где эти символы располагаются в таблице юникода).

И тогда мы имеем: 19×20×27 = 10260 всего чисел, которые покрывает эта система.

0: [0, 0, 0]: ('ㄱ', 'ㅏ', 'ㄱ', '각', 44033)
1: [1, 1, 1]: ('ㄲ', 'ㅐ', 'ㄲ', '깪', 44650)
2: [2, 2, 2]: ('ㄴ', 'ㅑ', 'ㄳ', '냓', 45267)
3: [3, 3, 3]: ('ㄷ', 'ㅒ', 'ㄴ', '댼', 45884)
4: [4, 4, 4]: ('ㄸ', 'ㅓ', 'ㄵ', '떥', 46501)
5: [5, 5, 5]: ('ㄹ', 'ㅔ', 'ㄶ', '렎', 47118)
6: [6, 6, 6]: ('ㅁ', 'ㅕ', 'ㄷ', '멷', 47735)
7: [7, 7, 7]: ('ㅂ', 'ㅖ', 'ㄹ', '볠', 48352)
8: [8, 8, 8]: ('ㅃ', 'ㅗ', 'ㄺ', '뽉', 48969)
9: [9, 9, 9]: ('ㅅ', 'ㅘ', 'ㄻ', '솲', 49586)
10: [10, 10, 10]: ('ㅆ', 'ㅙ', 'ㄼ', '쐛', 50203)
11: [11, 11, 11]: ('ㅇ', 'ㅚ', 'ㄽ', '욄', 50820)
12: [12, 12, 12]: ('ㅈ', 'ㅛ', 'ㄾ', '죭', 51437)
13: [13, 13, 13]: ('ㅉ', 'ㅜ', 'ㄿ', '쭖', 52054)
14: [14, 14, 14]: ('ㅊ', 'ㅝ', 'ㅀ', '춿', 52671)
15: [15, 15, 15]: ('ㅋ', 'ㅞ', 'ㅁ', '퀨', 53288)
16: [16, 16, 16]: ('ㅌ', 'ㅟ', 'ㅂ', '튑', 53905)
17: [17, 17, 17]: ('ㅍ', 'ㅠ', 'ㅄ', '퓺', 54522)
18: [18, 18, 18]: ('ㅎ', 'ㅡ', 'ㅅ', '흣', 55139)
19: [0, 19, 19]: ('ㄱ', 'ㅢ', 'ㅆ', '긨', 44584)
20: [1, 0, 20]: ('ㄲ', 'ㅏ', 'ㅇ', '깡', 44641)
21: [2, 1, 21]: ('ㄴ', 'ㅐ', 'ㅈ', '냊', 45258)
22: [3, 2, 22]: ('ㄷ', 'ㅑ', 'ㅊ', '댳', 45875)
23: [4, 3, 23]: ('ㄸ', 'ㅒ', 'ㅋ', '떜', 46492)
24: [5, 4, 24]: ('ㄹ', 'ㅓ', 'ㅌ', '렅', 47109)
25: [6, 5, 25]: ('ㅁ', 'ㅔ', 'ㅍ', '멮', 47726)

100: [5, 0, 19]: ('ㄹ', 'ㅏ', 'ㅆ', '랐', 46992)
1000: [12, 0, 1]: ('ㅈ', 'ㅏ', 'ㄲ', '잒', 51090)
10000: [6, 0, 10]: ('ㅁ', 'ㅏ', 'ㄼ', '맓', 47571)
10259: [18, 19, 26]: ('ㅎ', 'ㅢ', 'ㅎ', '힇', 55175)
10260: [0, 0, 0]: ('ㄱ', 'ㅏ', 'ㄱ', '각', 44033)

31-12-2025 = 죉죭엑

Moera
WEB.MOERA.ORG
To react or comment  View in Web Client
Comments (3)
Avatar

Мой моск как то совсем не хочет воспринимать СОК. После твоего прошлого поста я попробовал с СОК разобраться... показалось, что понял, но по факту - нет.:)
С корейским ... почему-то я считал, что язык гораздо проще 🙂🙂🙂🙂🙂 .
Кста, можешь пояснить, почему можно отбросить ㅣ?

Avatar placeholder
zmila (updated )

Систему СОК можно представить так: есть например 16 типов личности. Обычная система их просто пронумерует: 1й, 2й, 16й. Чем 5-й отличается от 15-го - чисто по числу не понять.
А если взять эту личность и рассмотреть её с точки зрения 4-х классов, и собрать 4 кода: есть данный признак или нет. То будет те же 16 комбинаций. И можно легко видеть: INFJ и ENFP одинаковы в такой-то области, разные в такой-то.
Так и в СОК. Тут тоже разные классы (модули, остатки от деления), но не обязательно все бинарные. Числа 9 и 6 по модулю 3 одинаковые, а по модулю 2 - разные. И комбинация всех остатков даёт однозначное представление числа. Например, с помощью модулей (2,3,5) мы можем закодировать 30 чисел.


Отбросить последнюю гласную: потому что всего гласных там 21, это 3x7. А конечных согласных я выбрал 27=3x3x3. Для правильной работы системы нужно, чтобы все модули были взаимно-простые. А у нас получилось бы и там и там есть 3. В таком случае система будет работать криво: будут покрыты не все возможные комбинации, а некоторые разные десятичные числа будут закодированы одним и тем набором остатков. Поэтому я взял только 20=2x2x5, одной гласной пришлось пожертвовать.

Avatar

одной гласной пришлось пожертвовать.

аа, так ты это просто для примера.
27 согласных вмето 28и
и 20 гласных вместо 21,
(хотя считается, что букв 24 🙂🙂🙂

Хотя вот в иврите -- букв 22,
но
кроме того, что есть конечные формы у некоторых гласных,
м (מ | ם), н (נ | ן), п/ф (פ | ף), ц/ч (צ | ץ), к/х (כ | ך)

Есть ещё и "никуд" (точки) - которые обозначают как гласные так и правильное произношение согласной. / https://en.wikipedia.org/wiki/Niqqud / их 15 штук
(шаурма / шаверма / шаорма / шоарма: שורמה (арабское: شاورما) :
שֲוַארמָה  
שוּאַרמָה
שוואֵרמָה
И так далее 🙂
+"чубчик" = апостроф, превращающий пару букв в их "братьев" - "ц" в "ч", "з" в "ж".
+ ударение - примерно как 'ㄱ' в 'ㄲ' превращает "В" (ב) в "Б" (בּ)
Т.е. с точки зрения грамматики - 27 букв
A с точки зрения произношения - иврит стоит записывать не как буквы а как слоги. (весьма похоже на японский, корейский, и кучи других азиатских языков)
И тогда это практически пермутация бкув и никуда, получаем ~250 "слогов".
И тогда да, наверное удобнее пользоваться СОК по принципу
[27 (буквы), 17 (никуд + дагеш + чубчик), 2 (конечная или нет)]

Niqqud - Wikipedia
EN.WIKIPEDIA.ORG
👍1
To react or comment  View in Web Client