ទ្រឹស្តីនៃការសរសេរកូដ។ ប្រភេទនៃការសរសេរកូដ។ កំណើតនៃទ្រឹស្តីសរសេរកូដ ចំណាត់ថ្នាក់នៃវិធីសាស្ត្រសរសេរកូដ

  • 06.11.2021
"គោលដៅនៃវគ្គសិក្សានេះគឺដើម្បីរៀបចំអ្នកសម្រាប់អនាគតបច្ចេកទេសរបស់អ្នក។"

ហេ ហាប់ ចងចាំអត្ថបទដ៏អស្ចារ្យ "អ្នក និងការងាររបស់អ្នក" (+219, 2442 ចំណាំ, 394k អាន)?

ដូច្នេះ Hamming (បាទ បាទ/ចាស ការពិនិត្យដោយខ្លួនឯង និងកែកូដ Hamming ដោយខ្លួនឯង) មានសៀវភៅទាំងមូលដែលសរសេរដោយផ្អែកលើការបង្រៀនរបស់គាត់។ យើង​បក​ប្រែ ព្រោះ​បុរស​និយាយ​តាម​ចិត្ត។

សៀវភៅនេះមិនមែនគ្រាន់តែនិយាយអំពី IT នោះទេ នេះគឺជាសៀវភៅដែលនិយាយអំពីវិធីនៃការគិតរបស់មនុស្សដែលឡូយមិនគួរឱ្យជឿ។ “វាមិនមែនគ្រាន់តែជាបន្ទុកនៃការគិតវិជ្ជមានប៉ុណ្ណោះទេ។ វាពិពណ៌នាអំពីលក្ខខណ្ឌដែលបង្កើនឱកាសនៃការធ្វើការងារដ៏អស្ចារ្យ”។

យើងបានបកប្រែ 28 (ក្នុងចំណោម 30) ជំពូករួចហើយ។ ហើយយើងកំពុងធ្វើការលើការបោះពុម្ព "ក្នុងក្រដាស" ។

ទ្រឹស្តីសរសេរកូដ - I

ដោយបានពិចារណាលើកុំព្យូទ័រ និងរបៀបដែលពួកវាដំណើរការ ឥឡូវនេះយើងនឹងពិចារណាសំណួរនៃតំណាងព័ត៌មាន៖ របៀបកុំព្យូទ័រតំណាងឱ្យព័ត៌មានដែលយើងចង់ដំណើរការ។ អត្ថន័យនៃតួអក្សរណាមួយអាចអាស្រ័យលើរបៀបដែលវាត្រូវបានដំណើរការ ម៉ាស៊ីនមិនមានអត្ថន័យជាក់លាក់សម្រាប់ប៊ីតដែលបានប្រើនោះទេ។ នៅពេលពិភាក្សាអំពីប្រវត្តិនៃកម្មវិធីនៅក្នុងជំពូកទី 4 យើងបានពិចារណាភាសាសរសេរកម្មវិធីសំយោគមួយចំនួន ដែលកូដនៃការណែនាំបញ្ឈប់គឺដូចគ្នានឹងកូដនៃការណែនាំផ្សេងទៀត។ ស្ថានភាពនេះគឺជារឿងធម្មតាសម្រាប់ភាសាភាគច្រើន អត្ថន័យនៃការណែនាំត្រូវបានកំណត់ដោយកម្មវិធីដែលត្រូវគ្នា។

ដើម្បីសម្រួលបញ្ហានៃការតំណាងព័ត៌មាន សូមពិចារណាពីបញ្ហានៃការផ្ទេរព័ត៌មានពីចំណុចមួយទៅចំណុចមួយ។ សំណួរនេះទាក់ទងនឹងសំណួរនៃការរក្សាទុកព័ត៌មាន។ បញ្ហានៃការបញ្ជូនព័ត៌មានក្នុងពេលវេលា និងលំហគឺដូចគ្នាបេះបិទ។ រូបភាព 10.1 បង្ហាញគំរូផ្ទេរព័ត៌មានធម្មតា។

រូបភាព 10.1

នៅផ្នែកខាងឆ្វេងនៃរូបភាព 10.1 គឺជាប្រភពនៃព័ត៌មាន។ នៅពេលពិចារណាគំរូ ធម្មជាតិនៃប្រភពគឺមិនសំខាន់សម្រាប់យើងទេ។ វាអាចជាសំណុំនៃតួអក្សរអក្ខរក្រម លេខ រូបមន្តគណិតវិទ្យា កំណត់ចំណាំតន្ត្រី និមិត្តសញ្ញាដែលយើងអាចតំណាងឱ្យចលនារាំ - ធម្មជាតិនៃប្រភព និងអត្ថន័យនៃតួអក្សរដែលបានរក្សាទុកនៅក្នុងវាមិនមែនជាផ្នែកនៃគំរូបញ្ជូន។ យើងពិចារណាតែប្រភពនៃព័ត៌មានប៉ុណ្ណោះ ជាមួយនឹងការកំណត់បែបនេះ ទ្រឹស្តីទូទៅដ៏មានឥទ្ធិពលមួយត្រូវបានទទួល ដែលអាចពង្រីកដល់ផ្នែកជាច្រើន។ វាគឺជាអរូបីពីកម្មវិធីជាច្រើន។

នៅពេលដែល Shannon បានបង្កើតទ្រឹស្តីព័ត៌មាននៅចុងទសវត្សរ៍ឆ្នាំ 1940 វាត្រូវបានគេគិតថាវាគួរតែត្រូវបានគេហៅថាទ្រឹស្តីទំនាក់ទំនង ប៉ុន្តែគាត់បានទទូចលើពាក្យព័ត៌មាន។ ពាក្យនេះបានក្លាយទៅជាបុព្វហេតុឥតឈប់ឈរនៃទាំងការចាប់អារម្មណ៍កើនឡើង និងការខកចិត្តឥតឈប់ឈរនៅក្នុងទ្រឹស្តី។ អ្នកស៊ើបអង្កេតចង់បង្កើត "ទ្រឹស្ដីនៃព័ត៌មាន" ទាំងមូល ពួកគេបានប្រែក្លាយទៅជាទ្រឹស្ដីអំពីសំណុំតួអក្សរ។ ត្រឡប់ទៅគំរូផ្ទេរវិញ យើងមានប្រភពនៃទិន្នន័យដែលត្រូវការអ៊ិនកូដសម្រាប់ការផ្ទេរ។

ឧបករណ៍បំប្លែងកូដមានពីរផ្នែក ដែលផ្នែកទីមួយត្រូវបានគេហៅថា ឧបករណ៍បំប្លែងប្រភព ឈ្មោះពិតប្រាកដអាស្រ័យលើប្រភេទប្រភព។ ប្រភពនៃប្រភេទទិន្នន័យផ្សេងៗគ្នាត្រូវគ្នាទៅនឹងប្រភេទផ្សេងគ្នានៃអ្នកបំលែងកូដ។

ផ្នែកទីពីរនៃដំណើរការអ៊ិនកូដត្រូវបានគេហៅថាការសរសេរកូដឆានែល ហើយអាស្រ័យលើប្រភេទនៃឆានែលសម្រាប់ការបញ្ជូនទិន្នន័យ។ ដូច្នេះផ្នែកទីពីរនៃដំណើរការអ៊ិនកូដគឺត្រូវគ្នាទៅនឹងប្រភេទឆានែលបញ្ជូន។ ដូច្នេះនៅពេលប្រើចំណុចប្រទាក់ស្តង់ដារទិន្នន័យពីប្រភពត្រូវបានអ៊ិនកូដដំបូងយោងទៅតាមតម្រូវការនៃចំណុចប្រទាក់ហើយបន្ទាប់មកយោងទៅតាមតម្រូវការនៃឆានែលបញ្ជូនទិន្នន័យដែលបានប្រើ។

យោងតាមគំរូនៅក្នុងរូបភាព 10.1 តំណភ្ជាប់ទិន្នន័យគឺស្ថិតនៅក្រោម "សំឡេងរំខានបន្ថែម" ។ សំលេងរំខានទាំងអស់នៅក្នុងប្រព័ន្ធត្រូវបានបញ្ចូលគ្នានៅចំណុចនេះ។ វាត្រូវបានសន្មត់ថាកម្មវិធីបម្លែងកូដទទួលបាននិមិត្តសញ្ញាទាំងអស់ដោយគ្មានការបង្ខូចទ្រង់ទ្រាយ ហើយឧបករណ៍ឌិកូដដំណើរការមុខងាររបស់វាដោយគ្មានកំហុស។ នេះគឺជាឧត្តមគតិមួយចំនួន ប៉ុន្តែសម្រាប់គោលបំណងជាក់ស្តែងជាច្រើន វានៅជិតការពិត។

ដំណាក់កាលនៃការឌិកូដក៏មានពីរដំណាក់កាលផងដែរ៖ ឆានែល - ស្តង់ដារស្តង់ដារ - អ្នកទទួលទិន្នន័យ។ នៅចុងបញ្ចប់នៃការផ្ទេរទិន្នន័យត្រូវបានផ្ទេរទៅឱ្យអ្នកប្រើប្រាស់។ ជាថ្មីម្តងទៀត យើងមិនពិចារណាពីរបៀបដែលអ្នកប្រើប្រាស់បកស្រាយទិន្នន័យនេះទេ។

ដូចដែលបានកត់សម្គាល់ពីមុន ប្រព័ន្ធបញ្ជូនទិន្នន័យដូចជា សារទូរស័ព្ទ វិទ្យុ កម្មវិធីទូរទស្សន៍ តំណាងឱ្យទិន្នន័យជាសំណុំនៃលេខនៅក្នុងបញ្ជីកុំព្យូទ័រ។ ជា​ថ្មី​ម្តង​ទៀត ការ​បញ្ជូន​ក្នុង​លំហ​មិន​ខុស​ពី​ការ​បញ្ជូន​ក្នុង​ពេល​វេលា ឬ​ការ​ផ្ទុក​ព័ត៌មាន​នោះ​ទេ។ តើ​អ្នក​មាន​ព័ត៌មាន​ដែល​នឹង​ត្រូវ​ការ​បន្ទាប់​ពី​ពេល​ណា​មួយ​នោះ វា​ត្រូវ​តែ​ត្រូវ​បាន​អ៊ិនកូដ និង​រក្សា​ទុក​នៅ​ប្រភព​ផ្ទុក​ទិន្នន័យ។ បើចាំបាច់ ព័ត៌មានត្រូវបានឌិកូដ។ ប្រសិនបើប្រព័ន្ធអ៊ិនកូដ និងឌិកូដដូចគ្នា យើងបញ្ជូនទិន្នន័យតាមរយៈឆានែលបញ្ជូនមិនផ្លាស់ប្តូរ។

ភាពខុសគ្នាជាមូលដ្ឋានរវាងទ្រឹស្ដីដែលបានបង្ហាញ និងទ្រឹស្តីធម្មតាក្នុងរូបវិទ្យា គឺជាការសន្មត់ថាគ្មានសំលេងរំខានពីប្រភពនិងអ្នកទទួល។ ជាការពិតកំហុសកើតឡើងនៅក្នុងឧបករណ៍ណាមួយ។ នៅក្នុងមេកានិចកង់ទិច សំលេងរំខានកើតឡើងនៅដំណាក់កាលណាមួយដោយយោងទៅតាមគោលការណ៍មិនច្បាស់លាស់ ហើយមិនមែនជាលក្ខខណ្ឌដំបូងឡើយ។ ក្នុងករណីណាក៏ដោយ គោលគំនិតនៃសំលេងរំខាននៅក្នុងទ្រឹស្ដីព័ត៌មានគឺមិនស្មើនឹងគោលគំនិតស្រដៀងគ្នានៅក្នុង quantum mechanics នោះទេ។
សម្រាប់ភាពច្បាស់លាស់ យើងនឹងពិចារណាបន្ថែមទៀតអំពីទម្រង់គោលពីរនៃការតំណាងទិន្នន័យនៅក្នុងប្រព័ន្ធ។ ទម្រង់ផ្សេងទៀតត្រូវបានដំណើរការតាមរបៀបស្រដៀងគ្នា ដើម្បីភាពសាមញ្ញយើងនឹងមិនពិចារណាពួកវាទេ។

ចូរចាប់ផ្តើមជាមួយប្រព័ន្ធដែលមានតួអក្សរសរសេរកូដនៃប្រវែងអថេរ ដូចនៅក្នុងកូដ Morse បុរាណនៃចំណុច និងសញ្ញាដាច់ ៗ ដែលតួអក្សរដែលកើតឡើងញឹកញាប់គឺខ្លី ហើយតួអក្សរកម្រមានវែង។ វិធីសាស្រ្តនេះអនុញ្ញាតឱ្យសម្រេចបាននូវប្រសិទ្ធភាពកូដខ្ពស់ ប៉ុន្តែវាគួរអោយកត់សំគាល់ថា កូដ Morse គឺជា ternary មិនមែន binary ទេ ព្រោះវាមានតួអក្សរចន្លោះរវាងចំនុច និងសញ្ញា។ ប្រសិនបើតួអក្សរទាំងអស់នៅក្នុងកូដមានប្រវែងដូចគ្នា នោះកូដបែបនេះត្រូវបានគេហៅថា ប្លុក។

ទ្រព្យសម្បត្តិចាំបាច់ដំបូងបង្អស់របស់កូដគឺសមត្ថភាពក្នុងការឌិកូដសារដោយមិនច្បាស់លាស់ក្នុងករណីដែលគ្មានសំលេងរំខាន យ៉ាងហោចណាស់នេះហាក់ដូចជាទ្រព្យសម្បត្តិដែលចង់បាន ទោះបីជាក្នុងស្ថានភាពខ្លះតម្រូវការនេះអាចត្រូវបានគេមិនយកចិត្តទុកដាក់ក៏ដោយ។ ទិន្នន័យពីឆានែលបញ្ជូនលេចឡើងចំពោះអ្នកទទួលជាស្ទ្រីម 0s និង 1s ។

យើងនឹងហៅតួអក្សរជាប់គ្នាពីរជាផ្នែកបន្ថែមទ្វេ តួអក្សរជាប់គ្នាបីជាផ្នែកបន្ថែមបីដង ហើយជាទូទៅប្រសិនបើយើងផ្ញើតួអក្សរ N អ្នកទទួលមើលឃើញការបន្ថែមទៅកូដមូលដ្ឋាននៃតួអក្សរ N ។ អ្នកទទួលដោយមិនដឹងពីតម្លៃ N ត្រូវតែបែងចែកស្ទ្រីមទៅជាប្លុកផ្សាយ។ ឬនិយាយម្យ៉ាងទៀត អ្នកទទួលត្រូវតែអាចបំបែកចរន្តតាមរបៀបតែមួយគត់ ដើម្បីស្ថាបនាសារដើមឡើងវិញ។

ពិចារណាអក្ខរក្រមនៃតួអក្សរមួយចំនួនតូច ជាធម្មតាអក្ខរក្រមមានទំហំធំជាង។ អក្ខរក្រមភាសាចាប់ផ្តើមពី 16 ទៅ 36 តួអក្សរ រួមទាំងអក្សរធំ និងអក្សរតូច លេខ សញ្ញា វណ្ណយុត្តិ។ ឧទាហរណ៍ ក្នុងតារាង ASCII 128 = 2^7 តួអក្សរ។
ពិចារណាកូដពិសេសដែលមាន 4 តួអក្សរ s1, s2, s3, s4

s1 = 0; s2 = 00; s3 = 01; s4 = ១១.

របៀបដែលអ្នកទទួលគួរបកស្រាយកន្សោមដែលទទួលបានខាងក្រោម

ម៉េច s1s1s4ឬរបៀប s2s4?

អ្នក​មិន​អាច​ឆ្លើយ​សំណួរ​នេះ​ដោយ​មិន​ច្បាស់​លាស់​ទេ កូដ​នេះ​ពិត​ជា​មិន​ត្រូវ​បាន​ឌិកូដ​ទេ ដូច្នេះ​ហើយ​វា​មិន​ពេញ​ចិត្ត។ ម៉្យាងទៀតលេខកូដ

s1 = 0; s2 = 10; s3 = 110; s4 = 111

ឌិកូដសារតាមរបៀបពិសេសមួយ។ ចូរយើងយកខ្សែអក្សរតាមអំពើចិត្ត ហើយពិចារណាពីរបៀបដែលអ្នកទទួលនឹងឌិកូដវា។ អ្នក​ត្រូវ​បង្កើត​មែកធាង​ឌិកូដ​តាម​រូបរាង​ក្នុង​រូបភាព 10.II ។ បន្ទាត់

1101000010011011100010100110

អាចត្រូវបានបំបែកទៅជាប្លុកតួអក្សរ

110, 10, 0, 10, 0, 110, 111, 0, 0, 0, 10, 10, 0, 110,

យោងតាមច្បាប់ខាងក្រោមសម្រាប់ការសាងសង់ដើមឈើឌិកូដ:

ប្រសិនបើអ្នកនៅលើកំពូលនៃដើមឈើបន្ទាប់មកអានតួអក្សរបន្ទាប់។ នៅពេលអ្នកទៅដល់ស្លឹកឈើ អ្នកបំប្លែងលំដាប់ទៅជាតួអក្សរ ហើយត្រឡប់ទៅដើមវិញ។

ហេតុផលដែលដើមឈើបែបនេះមានគឺថាគ្មានតួអក្សរណាមួយជាបុព្វបទរបស់ផ្សេងទៀតទេ ដូច្នេះអ្នកតែងតែដឹងថាពេលណាត្រូវត្រលប់ទៅផ្នែកខាងលើនៃមែកធាងឌិកូដ។

វាចាំបាច់ក្នុងការយកចិត្តទុកដាក់លើចំណុចខាងក្រោម។ ទីមួយ ការឌិកូដគឺជាដំណើរការស្ទ្រីមយ៉ាងតឹងរ៉ឹង ដែលប៊ីតនីមួយៗត្រូវបានពិនិត្យតែម្តងប៉ុណ្ណោះ។ ទីពីរ ពិធីការជាធម្មតារួមបញ្ចូលតួអក្សរដែលសម្គាល់ការបញ្ចប់នៃដំណើរការឌិកូដ ហើយចាំបាច់ដើម្បីបង្ហាញពីចុងបញ្ចប់នៃសារ។

ការមិនប្រើតួអក្សរបន្តគឺជាកំហុសទូទៅក្នុងការរចនាកូដ។ ជា​ការ​ពិត​ណាស់ របៀប​ឌិកូដ​អចិន្ត្រៃយ៍​អាច​ត្រូវ​បាន​ផ្តល់​ជូន ដែល​ក្នុង​ករណី​នេះ​មិន​ត្រូវ​ការ​និមិត្តសញ្ញា​បញ្ចប់​ទេ។

រូបភាព 10.II

សំណួរបន្ទាប់គឺកូដសម្រាប់ការស្ទ្រីម (ភ្លាមៗ) ឌិកូដ។ ពិចារណាកូដដែលទទួលបានពីការគូសវាសតួអក្សរពីមុន

s1 = 0; s2 = 01; s3 = 011; s4 = 111 ។

ឧបមាថាយើងមានលំដាប់ 011111...111 . វិធីតែមួយគត់ដែលអ្នកអាចឌិកូដអត្ថបទរបស់សារគឺដាក់ជាក្រុមពីចុងដល់ 3 ក្នុងក្រុម ហើយជ្រើសរើសក្រុមដែលមានលេខសូន្យនាំមុខមុន បន្ទាប់មកអ្នកអាចឌិកូដបាន។ កូដ​បែបនេះ​អាច​ឌិកូដ​បាន​ក្នុង​វិធី​ប្លែក​មួយ ប៉ុន្តែ​មិនមែន​ភ្លាមៗ​ទេ! ដើម្បីឌិកូដ អ្នកត្រូវតែរង់ចាំរហូតដល់ចុងបញ្ចប់នៃការផ្ទេរប្រាក់! នៅក្នុងការអនុវត្ត វិធីសាស្រ្តនេះកម្រិតល្បឿននៃការឌិកូដ (ទ្រឹស្តីបទរបស់ McMillan) ដូច្នេះហើយ ចាំបាច់ត្រូវរកមើលវិធីនៃការឌិកូដភ្លាមៗ។

ពិចារណាវិធីពីរយ៉ាងក្នុងការអ៊ិនកូដតួអក្សរដូចគ្នា Si:

s1 = 0; s2 = 10; s3 = 110; s4=1110, s5=1111,

មែកធាងឌិកូដសម្រាប់វិធីសាស្រ្តនេះត្រូវបានបង្ហាញក្នុងរូបភាព 10.III ។

រូបភាព 10.III

វិធីទីពីរ

s1 = 00; s2 = 01; s3 = 100; s4=110, s5=111,

មែកធាងឌិកូដនៃការថែទាំនេះត្រូវបានបង្ហាញក្នុងរូបភាព 10.IV ។

វិធីជាក់ស្តែងបំផុតដើម្បីវាស់គុណភាពកូដគឺប្រវែងមធ្យមសម្រាប់សំណុំសារមួយចំនួន។ ដើម្បីធ្វើដូច្នេះ ចាំបាច់ត្រូវគណនាប្រវែងកូដនៃនិមិត្តសញ្ញានីមួយៗ គុណនឹងប្រូបាប៊ីលីតេនៃការកើតឡើង pi ដែលត្រូវគ្នា។ វានឹងផ្តល់ឱ្យអ្នកនូវប្រវែងនៃកូដទាំងមូល។ រូបមន្តសម្រាប់លេខកូដ L ប្រវែងមធ្យមសម្រាប់អក្ខរក្រមនៃតួអក្សរ q មានដូចខាងក្រោម

ដែល pi គឺជាប្រូបាប៊ីលីតេនៃការកើតឡើងនៃតួអក្សរ si, li គឺជាប្រវែងដែលត្រូវគ្នានៃតួអក្សរដែលបានអ៊ិនកូដ។ សម្រាប់លេខកូដដែលមានប្រសិទ្ធភាព តម្លៃនៃ L គួរតែតូចតាមដែលអាចធ្វើទៅបាន។ ប្រសិនបើ P1 = 1/2, p2 = 1/4, p3 = 1/8, p4 = 1/16 និង p5 = 1/16 បន្ទាប់មកសម្រាប់លេខកូដ #1 យើងទទួលបានតម្លៃនៃប្រវែងកូដ

ហើយសម្រាប់លេខ 2

តម្លៃដែលទទួលបានបង្ហាញពីចំណូលចិត្តសម្រាប់លេខកូដដំបូង។
ប្រសិនបើពាក្យទាំងអស់នៅក្នុងអក្ខរក្រមមានប្រូបាប៊ីលីតេនៃការកើតឡើងដូចគ្នា នោះលេខកូដទីពីរគឺល្អជាង។ ឧទាហរណ៍ជាមួយ pi = 1/5 ប្រវែងកូដ #1

និង​លេខ​កូដ​ប្រវែង ២

លទ្ធផលនេះបង្ហាញពីចំណូលចិត្តសម្រាប់លេខកូដ 2 ។ ដូច្នេះនៅពេលរចនាកូដ "ល្អ" ប្រូបាប៊ីលីតេនៃការកើតឡើងនៃតួអក្សរត្រូវតែយកមកពិចារណា។

រូបភាព 10.IV

រូបភាព 10.V

ពិចារណាពីវិសមភាពរបស់ Kraft ដែលកំណត់តម្លៃកំណត់នៃប្រវែងកូដតួអក្សរ li ។ យោងតាមមូលដ្ឋានទី 2 វិសមភាពត្រូវបានតំណាងថាជា

វិសមភាពនេះនិយាយថាមិនអាចមានតួអក្សរខ្លីពេកនៅក្នុងអក្ខរក្រមទេ បើមិនដូច្នេះទេផលបូកនឹងធំណាស់។

ដើម្បីបញ្ជាក់អំពីវិសមភាពរបស់ Kraft សម្រាប់កូដដែលអាចឌិកូដបានលឿនតែមួយគត់ យើងបង្កើតមែកធាងការឌិកូដ និងអនុវត្តវិធីសាស្ត្រនៃការបញ្ចូលគណិតវិទ្យា។ ប្រសិនបើដើមឈើមានស្លឹកមួយឬពីរដូចបង្ហាញក្នុងរូបភាព 10.V នោះគ្មានការងឿងឆ្ងល់ទេថាវិសមភាពគឺពិត។ ជាងនេះទៅទៀត ប្រសិនបើដើមឈើមានស្លឹកលើសពីពីរ នោះយើងបំបែកមែកធាងដែលមានប្រវែង m ជាពីរមែកធាង។ យោងតាមគោលការណ៍នៃការបញ្ចូលយើងសន្មត់ថាវិសមភាពគឺពិតសម្រាប់សាខានីមួយៗនៃកំពស់ m -1 ឬតិចជាងនេះ។ យោងទៅតាមគោលការណ៍នៃអាំងឌុចស្យុង ការអនុវត្តវិសមភាពចំពោះសាខានីមួយៗ។ អនុញ្ញាតឱ្យយើងកំណត់ប្រវែងនៃកូដសាខាជា K" និង K"។ នៅពេលដែលសាខាពីរនៃមែកធាងត្រូវបានបញ្ចូលគ្នា ប្រវែងនៃនីមួយៗកើនឡើងដោយ 1 ដូច្នេះ ប្រវែងកូដមានផលបូក K'/2 និង K' /2,

ទ្រឹស្តីបទត្រូវបានបញ្ជាក់។

ពិចារណាលើភស្តុតាងនៃទ្រឹស្តីបទរបស់ Macmillan ។ ចូរយើងអនុវត្តវិសមភាពរបស់ Kraft ទៅនឹងកូដដែលមិនអាចឌិកូដបានតាមចរន្ត។ ភ័ស្តុតាងគឺផ្អែកលើការពិតដែលថាសម្រាប់លេខណាមួយ K> 1 អំណាចទី 0 នៃលេខគឺពិតជាធំជាងអនុគមន៍លីនេអ៊ែរនៃ n ដែល n គឺជាចំនួនធំគួរសម។ លើកវិសមភាពរបស់ Kraft ទៅអំណាចទី 9 ហើយតំណាងឱ្យការបញ្ចេញមតិជាផលបូក

កន្លែងដែល Nk ជាចំនួនតួអក្សរនៃប្រវែង k ការបូកចាប់ផ្តើមដោយប្រវែងអប្បបរមានៃការតំណាងតួអក្សរ n ហើយបញ្ចប់ដោយប្រវែងអតិបរមានៃ nl ដែល l គឺជាប្រវែងអតិបរមានៃតួអក្សរដែលបានអ៊ិនកូដ។ វាធ្វើតាមតម្រូវការនៃការឌិកូដតែមួយគត់នោះ។ ចំនួនទឹកប្រាក់ត្រូវបានបង្ហាញជា

ប្រសិនបើ K > 1 នោះចាំបាច់ត្រូវកំណត់ n ធំល្មមដើម្បីឱ្យវិសមភាពក្លាយជាមិនពិត។ ដូច្នេះ k<= 1; теорема Макмиллана доказана.

ចូរយើងពិចារណាឧទាហរណ៍មួយចំនួននៃការអនុវត្តវិសមភាពរបស់ Kraft ។ តើ​អាច​មាន​លេខ​កូដ​ដែល​អាច​ឌិកូដ​បាន​តែ​មួយ​គត់​ដែល​មាន​ប្រវែង 1, 3, 3, 3 ទេ? បាទ, ដោយសារតែ

ចុះប្រវែង 1, 2, 2, 3? គណនាតាមរូបមន្ត

វិសមភាពត្រូវបានរំលោភ! មានតួអក្សរខ្លីពេកនៅក្នុងកូដនេះ។

លេខកូដចំនុច (កូដក្បៀស) គឺជាលេខកូដដែលមានតួអក្សរ 1 បញ្ចប់ដោយតួអក្សរ 0 លើកលែងតែតួអក្សរចុងក្រោយដែលមានតួអក្សរទាំងអស់។ ករណីពិសេសមួយគឺលេខកូដ

s1 = 0; s2 = 10; s3 = 110; s4 = 1110; s5 = 11111 ។

សម្រាប់កូដនេះ យើងទទួលបានកន្សោមសម្រាប់វិសមភាពរបស់ Kraft

ក្នុងករណីនេះយើងទទួលបានសមភាព។ វាងាយមើលឃើញថាសម្រាប់លេខកូដចំណុចវិសមភាពរបស់ Kraft ចុះខ្សោយទៅជាសមភាព។

នៅពេលបង្កើតកូដអ្នកត្រូវយកចិត្តទុកដាក់លើផលបូក Kraft ។ ប្រសិនបើផលបូក Kraft ចាប់ផ្តើមលើសពី 1 នោះនេះគឺជាសញ្ញាមួយដើម្បីរួមបញ្ចូលនិមិត្តសញ្ញានៃប្រវែងខុសគ្នា ដើម្បីកាត់បន្ថយប្រវែងកូដជាមធ្យម។

គួរកត់សំគាល់ថា វិសមភាពរបស់ Kraft មិននិយាយថាកូដនេះអាចឌិកូដបានដោយឡែកទេ ប៉ុន្តែមានលេខកូដដែលមាននិមិត្តសញ្ញានៃប្រវែងបែបនេះដែលអាចដោះកូដបានតែមួយគត់។ ដើម្បីបង្កើតកូដដែលអាចឌិកូដបានតែមួយគត់ អ្នកអាចកំណត់ប្រវែងដែលត្រូវគ្នាក្នុងប៊ីតលីជាលេខគោលពីរ។ ឧទាហរណ៍ សម្រាប់ប្រវែង 2, 2, 3, 3, 4, 4, 4, 4 យើងទទួលបានវិសមភាពរបស់ Kraft

ដូច្នេះ កូដស្ទ្រីមដែលអាចឌិកូដបានតែមួយគត់បែបនេះអាចមាន។

s1 = 00; s2 = 01; s3 = 100; s4 = 101;

S5 = 1100; s6 = 1101; s7 = 1110; s8 = 1111;

ខ្ញុំចង់យកចិត្តទុកដាក់លើអ្វីដែលកើតឡើងនៅពេលដែលយើងផ្លាស់ប្តូរគំនិត។ ជាឧទាហរណ៍ នៅពេលនេះ ខ្ញុំចង់ផ្ទេរគំនិតមួយពីក្បាលខ្ញុំទៅអ្នក។ ខ្ញុំកំពុងនិយាយពាក្យមួយចំនួនដែលខ្ញុំជឿថាអ្នកនឹងអាចយល់ (ទទួលបាន) គំនិតនេះ។

ប៉ុន្តែនៅពេលក្រោយអ្នកចង់បង្ហាញគំនិតនេះទៅកាន់មិត្តរបស់អ្នក អ្នកនឹងស្ទើរតែនិយាយពាក្យខុសគ្នាទាំងស្រុង។ តាមការពិត អត្ថន័យ ឬអត្ថន័យគឺមិនមាននៅក្នុងពាក្យជាក់លាក់ណាមួយឡើយ។ ខ្ញុំបានប្រើពាក្យមួយចំនួន ប៉ុន្តែអ្នកអាចប្រើពាក្យខុសគ្នាទាំងស្រុង ដើម្បីបង្ហាញពីគំនិតដូចគ្នា។ ដូច្នេះ ពាក្យផ្សេងគ្នាអាចបង្ហាញព័ត៌មានដូចគ្នា។ ប៉ុន្តែនៅពេលដែលអ្នកប្រាប់អ្នកឆ្លើយឆ្លងរបស់អ្នកថាអ្នកមិនយល់សារនោះ តាមក្បួនមួយ អ្នកឆ្លើយឆ្លងនឹងជ្រើសរើសពាក្យផ្សេងដើម្បីបង្ហាញអត្ថន័យ ទីពីរ ឬសូម្បីតែទីបី។ ដូច្នេះ ព័ត៌មាន​មិន​មាន​ក្នុង​សំណុំ​នៃ​ពាក្យ​ជាក់លាក់​ទេ។ នៅពេលដែលអ្នកបានទទួលពាក្យជាក់លាក់រួចហើយ ចូរធ្វើការងារដ៏អស្ចារ្យក្នុងការបកប្រែពាក្យទៅជាគំនិតដែលអ្នកសន្ទនាចង់បង្ហាញដល់អ្នក។

យើងរៀនជ្រើសរើសពាក្យដើម្បីសម្របខ្លួនទៅនឹងអ្នកឆ្លើយឆ្លង។ ក្នុងន័យមួយ យើងជ្រើសរើសពាក្យដោយផ្គូផ្គងគំនិតរបស់យើង និងកម្រិតនៃសំលេងរំខាននៅក្នុងឆានែល ទោះបីជាការប្រៀបធៀបបែបនេះមិនឆ្លុះបញ្ចាំងយ៉ាងត្រឹមត្រូវអំពីគំរូដែលខ្ញុំប្រើដើម្បីតំណាងឱ្យសំឡេងរំខាននៅក្នុងដំណើរការឌិកូដក៏ដោយ។ នៅក្នុងអង្គការធំៗ បញ្ហាធ្ងន់ធ្ងរមួយគឺអសមត្ថភាពរបស់អ្នកសម្របសម្រួលក្នុងការស្តាប់នូវអ្វីដែលអ្នកដទៃនិយាយ។ នៅក្នុងមុខតំណែងខ្ពស់ និយោជិតឮ "អ្វីដែលពួកគេចង់ឮ"។ ក្នុងករណីខ្លះ អ្នកត្រូវចងចាំចំណុចនេះ នៅពេលអ្នកឡើងលើជណ្តើរសាជីវកម្ម។ ការតំណាងនៃព័ត៌មានក្នុងទម្រង់ផ្លូវការគឺជាការឆ្លុះបញ្ចាំងមួយផ្នែកនៃដំណើរការនៃជីវិតរបស់យើង ហើយបានរកឃើញកម្មវិធីធំទូលាយហួសពីព្រំដែននៃច្បាប់ផ្លូវការនៅក្នុងកម្មវិធីកុំព្យូទ័រ។

នៅ​មាន​ជា​បន្ត​ទៀត...

តើអ្នកណាដែលចង់ជួយក្នុងការបកប្រែ ប្លង់ និងការបោះពុម្ពសៀវភៅ - សរសេរតាមអ៊ីមែល ឬផ្ទាល់ខ្លួន [អ៊ីមែលការពារ]

ដោយវិធីនេះ យើងក៏បានបើកការបកប្រែសៀវភៅដ៏ត្រជាក់មួយទៀត -

ការសរសេរកូដ។ គំនិតជាមូលដ្ឋាន។

វិធីសាស្រ្តសរសេរកូដផ្សេងៗត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយក្នុងការអនុវត្តរបស់មនុស្សតាំងពីយូរយារណាស់មកហើយ។ ឧទាហរណ៍ ប្រព័ន្ធលេខខ្ទង់ទសភាគ គឺជាវិធីនៃការអ៊ិនកូដលេខធម្មជាតិ។ វិធីមួយទៀតដើម្បីអ៊ិនកូដលេខធម្មជាតិគឺលេខរ៉ូម៉ាំង ហើយវិធីសាស្ត្រនេះកាន់តែមើលឃើញ និងធម្មជាតិ ម្រាមដៃ - ខ្ញុំ ប្រាំ - V ពីរ ប្រាំ - X ។ ទោះយ៉ាងណាក៏ដោយជាមួយនឹងវិធីសាស្ត្របំប្លែងលេខនេះ វាពិបាកជាងក្នុងការអនុវត្តនព្វន្ធ។ ប្រតិបត្តិការលើលេខធំ ដូច្នេះវាត្រូវបានជំនួសដោយការអ៊ិនកូដដោយវិធីសាស្រ្តដោយផ្អែកលើសញ្ញាគោលទសភាគ។ ពីឧទាហរណ៍នេះ យើងអាចសន្និដ្ឋានបានថា វិធីសាស្ត្របំប្លែងកូដផ្សេងៗមានលក្ខណៈជាក់លាក់រៀងៗខ្លួន ដែលអាស្រ័យលើគោលបំណងនៃការបំប្លែងកូដ អាចជាអត្ថប្រយោជន៍នៃវិធីសាស្ត្របំប្លែងកូដជាក់លាក់មួយ និងគុណវិបត្តិរបស់វា។

វិធីសាស្រ្តដែលគេស្គាល់យ៉ាងទូលំទូលាយនៃការសរសេរកូដជាលេខនៃវត្ថុធរណីមាត្រ និងទីតាំងរបស់វានៅក្នុងលំហ៖ កូអរដោនេ Cartesian និងកូអរដោនេប៉ូល ហើយ​វិធី​បំប្លែង​កូដ​ទាំង​នេះ​ខុស​គ្នា​ក្នុង​លក្ខណៈ​ពិសេស​របស់​វា។

រហូតមកដល់សតវត្សទី 20 វិធីសាស្រ្ត និងឧបករណ៍សរសេរកូដបានដើរតួនាទីគាំទ្រ ប៉ុន្តែជាមួយនឹងការមកដល់នៃកុំព្យូទ័រ ស្ថានភាពបានផ្លាស់ប្តូរយ៉ាងខ្លាំង។ ការសរសេរកូដត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយនៅក្នុងបច្ចេកវិទ្យាព័ត៌មាន ហើយជារឿយៗជាបញ្ហាចម្បងក្នុងការដោះស្រាយបញ្ហាផ្សេងៗដូចជា៖

- តំណាងនៃទិន្នន័យនៃធម្មជាតិបំពាន (លេខ, អត្ថបទ, ក្រាហ្វិក) នៅក្នុងអង្គចងចាំកុំព្យូទ័រ;

- ការបញ្ជូនទិន្នន័យល្អបំផុតតាមបណ្តាញទំនាក់ទំនង;

- ការការពារព័ត៌មាន (សារ) ពីការចូលដោយគ្មានការអនុញ្ញាត។

- ធានានូវអភ័យឯកសិទ្ធិសំលេងរំខានកំឡុងពេលបញ្ជូនទិន្នន័យតាមបណ្តាញទំនាក់ទំនង។

- ការបង្រួមព័ត៌មាន។

តាមទស្សនៈនៃទ្រឹស្ដីព័ត៌មាន ការសរសេរកូដគឺជាដំណើរការនៃការផ្គូផ្គងអក្ខរក្រមនៃប្រភពសារ និងសំណុំនិមិត្តសញ្ញាតាមលក្ខខណ្ឌជាក់លាក់មួយ ដែលត្រូវបានអនុវត្តដោយយោងទៅតាមច្បាប់ជាក់លាក់មួយ ហើយកូដ (អក្ខរក្រមកូដ) គឺជាសំណុំពេញលេញ ( កំណត់) នៃនិមិត្តសញ្ញាតាមលក្ខខណ្ឌផ្សេងៗ (និមិត្តសញ្ញាកូដ) ដែលអាចត្រូវបានប្រើសម្រាប់ការអ៊ិនកូដសារដើម និងដែលអាចធ្វើទៅបានក្រោមច្បាប់នៃការអ៊ិនកូដនេះ។ ចំនួននៃនិមិត្តសញ្ញាកូដផ្សេងៗគ្នាដែលបង្កើតជាអក្ខរក្រមកូដត្រូវបានគេហៅថា បរិមាណនៃកូដ ឬបរិមាណនៃអក្ខរក្រមកូដ។ ជាក់ស្តែង បរិមាណនៃអក្ខរក្រមកូដមិនអាចតិចជាងបរិមាណនៃអក្ខរក្រមនៃសារដើមដែលបានអ៊ិនកូដនោះទេ។ ដូច្នេះ ការសរសេរកូដគឺជាការបំប្លែងសារដើមទៅជាសំណុំ ឬលំដាប់នៃនិមិត្តសញ្ញាកូដដែលបង្ហាញសារដែលបានបញ្ជូនតាមបណ្តាញទំនាក់ទំនង។

ការអ៊ិនកូដអាចជាលេខ (ឌីជីថល) និងមិនមែនជាលេខ អាស្រ័យលើទម្រង់ដែលនិមិត្តសញ្ញាកូដត្រូវបានបង្ហាញ៖ លេខនៅក្នុងប្រព័ន្ធលេខមួយចំនួន ឬវត្ថុ ឬសញ្ញាមួយចំនួនផ្សេងទៀតរៀងគ្នា។

ក្នុងករណីភាគច្រើន និមិត្តសញ្ញាកូដគឺជាការរួមបញ្ចូលគ្នា ឬលំដាប់នៃសមាសធាតុសាមញ្ញមួយចំនួន ឧទាហរណ៍ លំដាប់នៃលេខនៅក្នុងនិមិត្តសញ្ញាកូដនៃកូដលេខ ដែលត្រូវបានគេហៅថាធាតុនៃនិមិត្តសញ្ញាកូដ។ ទីតាំង ឬលេខលំដាប់នៃធាតុនៅក្នុងពាក្យកូដត្រូវបានកំណត់ដោយទីតាំងរបស់វា។

ចំនួននៃធាតុនិមិត្តសញ្ញាកូដដែលប្រើដើម្បីតំណាងឱ្យតួអក្សរអក្ខរក្រមមួយនៃប្រភពសារដើមត្រូវបានគេហៅថាតម្លៃកូដ។ ប្រសិនបើតម្លៃនៃកូដគឺដូចគ្នាសម្រាប់តួអក្សរទាំងអស់នៃអក្ខរក្រមនៃសារដើម នោះលេខកូដត្រូវបានគេហៅថាឯកសណ្ឋាន បើមិនដូច្នេះទេ - មិនមែនឯកសណ្ឋាន។ ចំនួន​នៃ​ធាតុ​ដែល​រួម​បញ្ចូល​ក្នុង​និមិត្តសញ្ញា​កូដ ជួនកាល​ត្រូវ​បាន​ហៅ​ថា​ប្រវែង​នៃ​និមិត្តសញ្ញា​កូដ។

តាមទស្សនៈនៃការប្រើឡើងវិញ លេខកូដទាំងអស់អាចត្រូវបានបែងចែកទៅជាលេខកូដដែលមិនប្រើឡើងវិញ និងលេខកូដដែលមិនប្រើឡើងវិញ។ នៅក្នុងកូដដែលលែងត្រូវការវិញ ចំនួននៃធាតុនៃនិមិត្តសញ្ញាកូដអាចត្រូវបានកាត់បន្ថយដោយសារតែការប្រើប្រាស់កាន់តែមានប្រសិទ្ធភាពនៃធាតុដែលនៅសល់ ខណៈពេលដែលនៅក្នុងលេខកូដដែលមិនប្រើឡើងវិញ ការកាត់បន្ថយចំនួនធាតុនៅក្នុងនិមិត្តសញ្ញាកូដគឺមិនអាចទៅរួចទេ។

ភារកិច្ចនៃការសរសេរកូដនៅក្នុងការអវត្ដមាននៃការជ្រៀតជ្រែកនិងនៅក្នុងវត្តមានរបស់ពួកគេគឺខុសគ្នាយ៉ាងខ្លាំង។ ដូច្នេះ ការ​បែងចែក​ត្រូវ​បាន​ធ្វើ​ឡើង​រវាង​ការ​សរសេរ​កូដ​ដែល​មាន​ប្រសិទ្ធិ​ភាព (ស្ថិតិ) និង​ការ​កែ​សម្រួល (ការ​កែ​សម្រួល​សំឡេង) ។ ជាមួយនឹងការសរសេរកូដប្រកបដោយប្រសិទ្ធភាព ភារកិច្ចគឺដើម្បីសម្រេចបាននូវតំណាងនៃនិមិត្តសញ្ញាអក្ខរក្រមនៃប្រភពសារដោយចំនួនអប្បបរមានៃធាតុនៃនិមិត្តសញ្ញាកូដជាមធ្យមក្នុងមួយនិមិត្តសញ្ញានៃអក្ខរក្រមនៃប្រភពសារដោយកាត់បន្ថយភាពច្របូកច្របល់នៃកូដ។ ដែលនាំទៅដល់ការបង្កើនល្បឿននៃការបញ្ជូនសារ។ ហើយជាមួយនឹងការកែ (noise-immune) coding ភារកិច្ចគឺដើម្បីកាត់បន្ថយប្រូបាប៊ីលីតេនៃកំហុសក្នុងការបញ្ជូនតួអក្សរនៃអក្ខរក្រមដើមដោយស្វែងរក និងកែកំហុសដោយណែនាំកូដដដែលៗបន្ថែម។

ភារកិច្ចដាច់ដោយឡែកនៃការសរសេរកូដគឺដើម្បីការពារសារពីការចូលដោយគ្មានការអនុញ្ញាត ការបង្ខូចទ្រង់ទ្រាយ និងការបំផ្លាញ។ ជាមួយនឹងប្រភេទនៃការអ៊ិនកូដនេះ សារត្រូវបានអ៊ិនកូដតាមរបៀបដែលសូម្បីតែបន្ទាប់ពីទទួលបានវាក៏ដោយ អ្នកវាយប្រហារនឹងមិនអាចឌិកូដពួកវាបានទេ។ ដំណើរការនៃការបំប្លែងសារប្រភេទនេះត្រូវបានគេហៅថា ការអ៊ិនគ្រីប (ឬការអ៊ិនគ្រីប) ហើយដំណើរការឌិកូដត្រូវបានគេហៅថា ការឌិគ្រីប (ឬការឌិគ្រីប)។ សារដែលបានអ៊ិនកូដដោយខ្លួនវាត្រូវបានគេហៅថា អ៊ិនគ្រីប (ឬគ្រាន់តែអ៊ិនគ្រីប) ហើយវិធីសាស្ត្រអ៊ិនកូដដែលប្រើត្រូវបានគេហៅថា លេខសម្ងាត់។

ជាញឹកញាប់ វិធីសាស្ត្រសរសេរកូដត្រូវបានបែងចែកនៅក្នុងថ្នាក់ដាច់ដោយឡែក ដែលអនុញ្ញាតឱ្យអ្នកបង្កើតកូដសារ (ដោយមិនបាត់បង់ព័ត៌មាន) ដែលខ្លីជាងសារដើម។ វិធីសាស្ត្រ​បំប្លែង​កូដ​បែប​នេះ​ត្រូវ​បាន​ហៅ​ថា​វិធី​បង្ហាប់​ទិន្នន័យ ឬ​វិធី​វេចខ្ចប់។ គុណភាពនៃការបង្ហាប់ត្រូវបានកំណត់ដោយសមាមាត្រការបង្ហាប់ ដែលជាធម្មតាត្រូវបានវាស់ជាភាគរយ និងដែលបង្ហាញពីចំនួនភាគរយនៃសារដែលបានអ៊ិនកូដគឺខ្លីជាងដើម។

នៅក្នុងដំណើរការព័ត៌មានដោយស្វ័យប្រវត្តិដោយប្រើកុំព្យូទ័រ ជាក្បួន ការសរសេរកូដលេខ (ឌីជីថល) ត្រូវបានប្រើ ហើយតាមធម្មជាតិ សំណួរកើតឡើងពីភាពត្រឹមត្រូវនៃប្រព័ន្ធលេខដែលបានប្រើ។ ជាការពិតណាស់ នៅពេលដែលមូលដ្ឋាននៃប្រព័ន្ធលេខមានការថយចុះ អក្ខរក្រមនៃធាតុនៃនិមិត្តសញ្ញាកូដត្រូវបានធ្វើឱ្យសាមញ្ញ ប៉ុន្តែនិមិត្តសញ្ញាកូដត្រូវបានពង្រីក។ ម៉្យាងវិញទៀត មូលដ្ឋាននៃប្រព័ន្ធលេខកាន់តែធំ លេខខ្ទង់កាន់តែតិចត្រូវបានទាមទារ ដើម្បីតំណាងឱ្យនិមិត្តសញ្ញាមួយនៃកូដ ហើយជាលទ្ធផល ពេលវេលានៃការបញ្ជូនរបស់វាកាន់តែខ្លី ប៉ុន្តែជាមួយនឹងការរីកចម្រើននៃមូលដ្ឋាននៃលេខ។ ប្រព័ន្ធលេខ តម្រូវការសម្រាប់បណ្តាញទំនាក់ទំនង និងមធ្យោបាយបច្ចេកទេសនៃការទទួលស្គាល់សញ្ញាបឋមកើនឡើងយ៉ាងខ្លាំង។ , ដែលត្រូវគ្នាទៅនឹងធាតុផ្សេងគ្នានៃនិមិត្តសញ្ញាកូដ។ ជាពិសេស លេខកូដនៃលេខដែលសរសេរក្នុងប្រព័ន្ធលេខគោលពីរគឺជាមធ្យមប្រហែល 3.5 ដងយូរជាងលេខកូដទសភាគ។ ដោយសារនៅក្នុងប្រព័ន្ធដំណើរការព័ត៌មានទាំងអស់ ចាំបាច់ត្រូវរក្សាទុកអារេព័ត៌មានធំៗក្នុងទម្រង់ជាព័ត៌មានជាលេខ ដែលជាលក្ខណៈវិនិច្ឆ័យសំខាន់មួយសម្រាប់ជ្រើសរើសអក្ខរក្រមនៃធាតុនៃនិមិត្តសញ្ញានៃកូដលេខ (ពោលគឺមូលដ្ឋាននៃប្រព័ន្ធលេខដែលបានប្រើ) គឺដើម្បីកាត់បន្ថយចំនួនធាតុអេឡិចត្រូនិចនៅក្នុងឧបករណ៍ផ្ទុក ក៏ដូចជាភាពសាមញ្ញ និងភាពជឿជាក់របស់វា។

នៅពេលកំណត់ចំនួនធាតុអេឡិចត្រូនិចដែលត្រូវការដើម្បីជួសជុលធាតុនីមួយៗនៃនិមិត្តសញ្ញាកូដនោះ ចាំបាច់ត្រូវបន្តពីការសន្មតជាក់ស្តែងដែលថាវាទាមទារចំនួនធាតុអេឡិចត្រូនិចសាមញ្ញបំផុត (ឧទាហរណ៍ត្រង់ស៊ីស្ទ័រ) ស្មើនឹងមូលដ្ឋាននៃ ប្រព័ន្ធលេខ . បន្ទាប់មកសម្រាប់ការផ្ទុកនៅក្នុងឧបករណ៍មួយចំនួន ធាតុនិមិត្តសញ្ញាកូដនឹងត្រូវបានទាមទារ ធាតុអេឡិចត្រូនិច៖

M = a n. (2.1)

ចំនួនច្រើនបំផុតនៃលេខផ្សេងគ្នាដែលអាចត្រូវបានរក្សាទុកនៅក្នុងឧបករណ៍នេះ។ :

ន = ន.

យកលោការីតនៃកន្សោមនេះ ហើយបង្ហាញពីវា។ យើង​ទទួល​បាន:

=ln /ln ក.

ការបំប្លែងកន្សោម (២.១) ទៅជាទម្រង់

= មួយ ∙ ln /ln (2.2)

គេអាចកំណត់បានថា តើលោការីតមូលដ្ឋានអ្វី បរិមាណនៃធាតុ នឹងមានតិចតួចបំផុតសម្រាប់ការផ្តល់ឱ្យ . ភាពខុសគ្នាទាក់ទងនឹង មុខងារ M = f(a)ហើយ​ដោយ​សមីការ​ដេរីវេ​របស់​វា​ទៅ​សូន្យ យើង​ទទួល​បាន៖

ជាក់ស្តែងសម្រាប់ការកំណត់ណាមួយ។

ln / ln ២ a ≠ 0

ហេតុ​ដូចនេះ​ហើយ

ln ក- 1 = 0,

កន្លែងណា a = e ≈ 2.7 ។

ចាប់តាំងពីមូលដ្ឋាននៃប្រព័ន្ធលេខអាចគ្រាន់តែជាចំនួនគត់ ជ្រើសរើសស្មើនឹង 2 ឬ 3 ។ ឧទាហរណ៍ ចូរយើងកំណត់សមត្ថភាពអតិបរមានៃឧបករណ៍ផ្ទុក = 10 6 លេខ។ បន្ទាប់មក សម្រាប់មូលដ្ឋានផ្សេងគ្នានៃប្រព័ន្ធលេខ ( ) ចំនួន​ធាតុ ( ) នៅក្នុងឧបករណ៍ផ្ទុកបែបនេះនឹងស្របតាមកន្សោម (2.2) ដូចខាងក្រោម (តារាង 2.1)៖

តារាង 2.1 ។

39,2 38,2 39,2 42,9 91,2

ដូច្នេះប្រសិនបើយើងចាប់ផ្តើមពីការបង្រួមអប្បបរមានៃបរិក្ខារ នោះអត្ថប្រយោជន៍បំផុតនឹងជាប្រព័ន្ធលេខគោលពីរ ternary និង quaternary ដែលនៅជិតក្នុងប៉ារ៉ាម៉ែត្រនេះ។ ប៉ុន្តែចាប់តាំងពីការអនុវត្តបច្ចេកទេសនៃឧបករណ៍ដែលដំណើរការនៅក្នុងប្រព័ន្ធលេខគោលពីរគឺសាមញ្ញជាង លេខកូដដែលមានមូលដ្ឋានលើប្រព័ន្ធលេខក្នុងគោល 2 ត្រូវបានគេប្រើប្រាស់យ៉ាងទូលំទូលាយបំផុតក្នុងការសរសេរកូដលេខ។

គឺជាផ្នែកនៃទ្រឹស្ដីព័ត៌មានដែលសិក្សាពីវិធីកំណត់អត្តសញ្ញាណសារដែលមានសញ្ញាឆ្លុះបញ្ចាំងពីពួកគេ។ ភារកិច្ចនៃទ្រឹស្តីសរសេរកូដគឺដើម្បីសំរបសំរួលប្រភពនៃព័ត៌មានជាមួយបណ្តាញទំនាក់ទំនង។

កម្មវត្ថុនៃការសរសេរកូដគឺជាព័ត៌មានដាច់ដោយឡែក និងបន្តដែលមកដល់អ្នកប្រើប្រាស់តាមរយៈប្រភពនៃព័ត៌មាន។ គោលគំនិតនៃការសរសេរកូដមានន័យថា ការបំប្លែងព័ត៌មានទៅជាទម្រង់មួយដែលងាយស្រួលសម្រាប់ការបញ្ជូនតាមបណ្តាញទំនាក់ទំនងជាក់លាក់មួយ។

ប្រតិបត្តិការបញ្ច្រាស - ការឌិកូដ - មាននៅក្នុងការស្ដារសារដែលបានទទួលពីទម្រង់ដែលបានអ៊ិនកូដទៅជាទម្រង់ដែលទទួលយកជាទូទៅដែលអាចចូលប្រើបានសម្រាប់អ្នកប្រើប្រាស់។

មានផ្នែកជាច្រើននៅក្នុងទ្រឹស្តីសរសេរកូដ៖

  • ការសរសេរកូដឋិតិវន្តឬប្រសិទ្ធភាព;
  • កូដសំលេងរំខាន - ភាពស៊ាំ;
  • លេខកូដកែតម្រូវ;
  • កូដស៊ីក្លូ;
  • លេខ​កូដ​នព្វន្ធ។

ជាមួយនឹងវត្តមាននៃប្រព័ន្ធគ្រប់គ្រង ជាពិសេសកុំព្យូទ័រ តួនាទីនៃការសរសេរកូដបានកើនឡើងយ៉ាងខ្លាំង និងផ្លាស់ប្តូរ ដោយសារការបញ្ជូនព័ត៌មានគឺមិនអាចទៅរួចទេបើគ្មានការសរសេរកូដ។ ថ្មីៗនេះ ពាក់ព័ន្ធនឹងការអភិវឌ្ឍន៍ប្រព័ន្ធទូរគមនាគមន៍ និងការប្រើប្រាស់កុំព្យូទ័រយ៉ាងទូលំទូលាយសម្រាប់ដំណើរការ និងរក្សាទុកព័ត៌មាន វិស័យចំណេះដឹងថ្មីមួយបានលេចចេញជារូបរាង - សុវត្ថិភាពព័ត៌មាន។

ការសរសេរកូដគឺជាវិធីសកលនៃការបង្ហាញព័ត៌មានក្នុងអំឡុងពេលផ្ទុក ដំណើរការ និងការបញ្ជូនរបស់វាក្នុងទម្រង់ជាប្រព័ន្ធនៃការឆ្លើយឆ្លងរវាងសញ្ញា និងធាតុសារ ដោយមានជំនួយពីធាតុទាំងនេះអាចត្រូវបានជួសជុល។

កូដគឺជាច្បាប់សម្រាប់បំប្លែងសារដោយមិនច្បាស់លាស់ពីទម្រង់តំណាងនៃសារមួយទៅមួយទៀត ជាធម្មតាដោយមិនបាត់បង់ព័ត៌មានណាមួយឡើយ។

ប្រសិនបើពាក្យកូដទាំងអស់មានប្រវែងដូចគ្នា នោះកូដត្រូវបានគេហៅថាឯកសណ្ឋាន ឬប្លុក។

តាម​អក្ខរក្រម​អរូបី យើង​មាន​ន័យ​ថា​សំណុំ​និមិត្ត​សញ្ញា​ដាច់​ដោយ​ឡែក​តាម​លំដាប់។

ការសរសេរកូដតាមអក្ខរក្រម។អក្ខរក្រម, i.e. អក្សរតាមអក្សរ ការសរសេរកូដអាចត្រូវបានកំណត់ដោយតារាងកូដ។ តាមពិត កូដបំប្លែង គឺជាប្រភេទនៃការជំនួសមួយចំនួន។

ដែលអក្ខរក្រម A សំណុំនៃពាក្យដែលផ្សំក្នុងអក្ខរក្រម B. សំណុំនៃកូដអក្សរត្រូវបានគេហៅថាសំណុំនៃកូដបឋម។ ការអ៊ិនកូដតាមអក្ខរក្រមអាចត្រូវបានប្រើសម្រាប់សំណុំសារណាមួយ។

ដំណើរការទិន្នន័យកុំព្យូទ័រគឺផ្អែកលើការប្រើប្រាស់កូដគោលពីរ។ វិធីសាស្ត្របំប្លែងកូដជាសកលនេះគឺសមរម្យសម្រាប់ទិន្នន័យណាមួយ ដោយមិនគិតពីប្រភពដើម និងខ្លឹមសាររបស់វា។

ការអ៊ិនកូដអត្ថបទ

អត្ថបទគឺជាលំដាប់នៃតួអក្សរដែលរួមបញ្ចូលនៅក្នុងអក្ខរក្រមមួយចំនួន។ ការអ៊ិនកូដអត្ថបទត្រូវបានកាត់បន្ថយទៅជាការអ៊ិនកូដគោលពីរនៃអក្ខរក្រមដែលវាត្រូវបានបង្កើតឡើង។ ការ​អ៊ិនកូដ​បៃ​ដែល​ប្រើ​ជា​ទូទៅ​បំផុត​នៃ​អក្ខរក្រម។ ក្នុងករណីនេះសមត្ថភាពអក្ខរក្រមអតិបរមាគឺ 256 តួអក្សរ។ អក្ខរក្រមបែបនេះអាចមានតួអក្សរអក្ខរក្រមពីរ (ឧទាហរណ៍ រុស្ស៊ី និងឡាតាំង) លេខ វណ្ណយុត្តិ និងនិមិត្តសញ្ញាគណិតវិទ្យា ដកឃ្លា និងតួអក្សរបន្ថែមមួយចំនួនតូច។ ឧទាហរណ៍នៃអក្ខរក្រមបែបនេះគឺលេខកូដ ASCII ។

ទោះជាយ៉ាងណាក៏ដោយ កូដតួអក្សរចំនួន 256 ដែលមានកំណត់នាពេលបច្ចុប្បន្ននេះ លែងបំពេញតម្រូវការទំនាក់ទំនងអន្តរជាតិដែលកើនឡើងទៀតហើយ។ ប្រព័ន្ធអ៊ិនកូដតួអក្សរ UNICODE 16 ប៊ីតជាសកលកំពុងរីករាលដាលកាន់តែខ្លាំង។

អំណាចនៃអក្ខរក្រមនៅក្នុងប្រព័ន្ធសរសេរកូដ UNICODE គឺ 216 = 65,536 កូដខុសៗគ្នា ដែលក្នុងនោះ 63,484 កូដត្រូវនឹងតួអក្សរនៃអក្ខរក្រមភាគច្រើន ហើយលេខកូដ 2048 ដែលនៅសល់ត្រូវបែងចែកជាពាក់កណ្តាល ហើយបង្កើតជាតារាងដែលមានទំហំ 1024 ជួរឈរ x 1024 ។ បន្ទាត់។ មានក្រឡាច្រើនជាងមួយលាននៅក្នុងតារាងនេះ ដែលក្នុងនោះច្រើនជាងមួយលានតួអក្សរផ្សេងគ្នាអាចត្រូវបានដាក់។ ទាំងនេះគឺជានិមិត្តសញ្ញានៃភាសា "ស្លាប់" ក៏ដូចជានិមិត្តសញ្ញាដែលមិនមានខ្លឹមសារ lexical ទ្រនិច សញ្ញាជាដើម។ តួអក្សរបន្ថែមទាំងនេះត្រូវការគូនៃពាក្យ 16 ប៊ីត (16 ប៊ីតសម្រាប់លេខជួរដេក និង 16 ប៊ីតសម្រាប់លេខជួរ) ។

ដូច្នេះ ប្រព័ន្ធ UNICODE គឺជាប្រព័ន្ធសរសេរកូដជាសកលសម្រាប់តួអក្សរទាំងអស់នៃប្រព័ន្ធសរសេរជាតិ និងមានលទ្ធភាពនៃការពង្រីកយ៉ាងសំខាន់។

ការអ៊ិនកូដរូបភាព

គំនូររូបភាពរូបថតត្រូវបានអ៊ិនកូដ ក្នុងទម្រង់រ៉ាស្ទ័រ. នៅក្នុងទិដ្ឋភាពនេះ រូបភាពនីមួយៗគឺជាតារាងចតុកោណនៃចំណុចពណ៌។ ពណ៌ និងពន្លឺនៃចំនុចនីមួយៗត្រូវបានបង្ហាញក្នុងទម្រង់ជាលេខ ដែលអនុញ្ញាតឱ្យប្រើកូដគោលពីរដើម្បីតំណាងឱ្យទិន្នន័យក្រាហ្វិក។

វាជាទម្លាប់ក្នុងការតំណាងឱ្យរូបភាពស និងខ្មៅក្នុងមាត្រដ្ឋានប្រផេះ សម្រាប់គំរូ GreyScale នេះត្រូវបានប្រើ។ ប្រសិនបើពន្លឺនៃចំនុចត្រូវបានអ៊ិនកូដក្នុងមួយបៃ នោះ 256 សម្លេងពណ៌ប្រផេះផ្សេងគ្នាអាចត្រូវបានប្រើ។ ភាពត្រឹមត្រូវបែបនេះគឺស្របជាមួយនឹងភាពងាយនឹងភ្នែករបស់មនុស្ស និងសមត្ថភាពនៃបច្ចេកវិទ្យាបោះពុម្ព។

នៅពេលអ៊ិនកូដរូបភាពពណ៌ គោលការណ៍នៃការបំបែកពណ៌ទៅជាសមាសធាតុត្រូវបានប្រើ សម្រាប់ការនេះ គំរូ RGB ត្រូវបានប្រើ។ រូបភាពពណ៌នៅលើអេក្រង់ត្រូវបានទទួលដោយការលាយពណ៌មូលដ្ឋានចំនួនបី៖ ក្រហម (ក្រហម R) ខៀវ (ខៀវ B) និងបៃតង (បៃតង G) ។

ភីកសែលនីមួយៗនៅលើអេក្រង់មានធាតុបីយ៉ាងជិតគ្នា ដែលបញ្ចេញពន្លឺនៅក្នុងពណ៌ទាំងនេះ។

ការបង្ហាញពណ៌ដោយប្រើគោលការណ៍នេះត្រូវបានគេហៅថាម៉ូនីទ័រ RGB ។

លេខកូដពណ៌ភីកសែលមានព័ត៌មានអំពីសមាមាត្រនៃពណ៌មូលដ្ឋាននីមួយៗ។

ពណ៌ចម្រុះ

ប្រសិនបើសមាសធាតុទាំងបីមានអាំងតង់ស៊ីតេដូចគ្នា (ពន្លឺ) នោះ 8 ពណ៌ផ្សេងគ្នាអាចទទួលបានពីបន្សំរបស់ពួកគេ (23):

ត្នោត

ការកំណត់ពណ៌នៅជម្រៅពណ៌ 24 ប៊ីត៖

ជម្រៅពណ៌កាន់តែធំ ជួរពណ៌ដែលមានកាន់តែទូលំទូលាយ និងការបង្ហាញរបស់ពួកគេកាន់តែត្រឹមត្រូវនៅក្នុងរូបភាពឌីជីថល។ ភីកសែល​ដែល​មាន​ជម្រៅ​បន្តិច​ស្មើ​នឹង​មួយ​មាន​តែ 2 (ដល់​ដឺក្រេ​ទី​មួយ) ស្ថានភាព​ដែល​អាច​ធ្វើ​បាន - ពណ៌​ពីរ៖ ខ្មៅ ឬ​ស។ ភីកសែល​ដែល​មាន​ជម្រៅ​បន្តិច​នៃ 8 ឯកតា​មាន 28 ឬ 256 តម្លៃ​ពណ៌​ដែល​អាច​ធ្វើ​បាន។ ភីកសែលដែលមានជម្រៅប៊ីត 24 ឯកតាមាន 224 ដឺក្រេ) ឬ 16.7 លានតម្លៃដែលអាចធ្វើបាន។ វាត្រូវបានគេជឿថារូបភាព 24 ប៊ីតដែលមានពណ៌ 16.7 លានបង្ហាញយ៉ាងត្រឹមត្រូវនូវពណ៌នៃពិភពលោកជុំវិញយើង។ តាមក្បួនមួយ គុណភាពបង្ហាញប៊ីតត្រូវបានកំណត់ក្នុងចន្លោះពី 1 ដល់ 48 ប៊ីត/ភីកសែល។

នៅពេលបោះពុម្ពលើក្រដាស គំរូពណ៌ខុសគ្នាបន្តិចបន្តួចត្រូវបានប្រើ៖ ប្រសិនបើម៉ូនីទ័របញ្ចេញពន្លឺ ពណ៌លាំៗត្រូវបានទទួលជាលទ្ធផលនៃការបន្ថែមពណ៌ បន្ទាប់មកថ្នាំលាបស្រូបយកពន្លឺ ពណ៌ត្រូវបានដក។ ដូច្នេះ ថ្នាំលាបពណ៌ខៀវ (Cyan, C), ស្វាយ (Magenta, M) និងពណ៌លឿង (Yellow, Y) ត្រូវបានគេប្រើជាថ្នាំលាបសំខាន់។ លើសពីនេះទៀតដោយសារតែមិនមានឧត្តមគតិនៃការជ្រលក់ពណ៌មួយទីបួនជាធម្មតាត្រូវបានបន្ថែមទៅពួកគេ - ខ្មៅ (ខ្មៅ, K) ។ ដើម្បីរក្សាទុកព័ត៌មានអំពីថ្នាំលាបនីមួយៗ ហើយក្នុងករណីនេះ 1 បៃត្រូវបានគេប្រើញឹកញាប់បំផុត។ ប្រព័ន្ធសរសេរកូដនេះត្រូវបានគេហៅថា CMYK ។

តំណាង​ពណ៌​តូច​ជាង​ប្រើ​ប៊ីត​តិច​ជាង។ ឧទាហរណ៍ ការអ៊ិនកូដក្រាហ្វិកពណ៌ជាមួយនឹងលេខ 16 ប៊ីតត្រូវបានគេហៅថា High Color។ ក្នុងករណីនេះ លេខប្រាំខ្ទង់ត្រូវបានកំណត់ទៅពណ៌នីមួយៗ។

ការអ៊ិនកូដអូឌីយ៉ូ និងវីដេអូ

បច្ចេកទេសសម្រាប់ធ្វើការជាមួយព័ត៌មានសំឡេងបានមកដល់បច្ចេកវិទ្យាកុំព្យូទ័រយឺតជាងអ្វីផ្សេងទៀត។ វិធីសាស្ត្រសរសេរកូដវិភាគដែលអាចអនុវត្តបានចំពោះសញ្ញាសំឡេងណាមួយគឺផ្អែកលើការបំប្លែងអាណាឡូកទៅឌីជីថល។ សញ្ញាអាណាឡូកដើមត្រូវបានតំណាងជាលំដាប់នៃសញ្ញាឌីជីថលដែលសរសេរជាកូដគោលពីរ។ ជម្រៅប៊ីតនៃការបំប្លែងកំណត់ចំនួនទិន្នន័យដែលត្រូវគ្នានឹងសញ្ញាឌីជីថលតែមួយ។ នៅពេលចាក់សំឡេង ការបម្លែងពីឌីជីថលទៅអាណាឡូកបញ្ច្រាសត្រូវបានអនុវត្ត។

វិធីសាស្ត្រសរសេរកូដនេះមានកំហុស ដើម្បីឱ្យសញ្ញាដែលបានផលិតឡើងវិញមានភាពខុសគ្នាខ្លះពីប្រភពដើម។

វិធីសាស្ត្រសរសេរកូដដោយផ្អែកលើការសំយោគតារាងគឺអាចអនុវត្តបានចំពោះតែបទភ្លេងមួយ។ គំរូ (សំណាក) នៃ​សំឡេង​នៃ​ឧបករណ៍​តន្ត្រី​ផ្សេងៗ​ត្រូវ​បាន​រក្សា​ទុក​ក្នុង​តារាង​ដែល​បាន​រៀបចំ​ជាមុន។ លេខ​កូដ​កំណត់​ឧបករណ៍ ចំណាំ និង​រយៈពេល​នៃ​សំឡេង។

នៅពេលអ៊ិនកូដសញ្ញាវីដេអូ វាត្រូវបានទាមទារដើម្បីកត់ត្រាលំដាប់នៃរូបភាព (ស៊ុម) និងសំឡេង (បទអូឌីយ៉ូ)។ ទម្រង់នៃការថតវីដេអូអនុញ្ញាតឱ្យស្ទ្រីមទិន្នន័យទាំងពីរត្រូវបានរួមបញ្ចូលនៅក្នុងលំដាប់ឌីជីថលមួយ។

០៤/០៤/២០០៦ Leonid Chernyak ប្រភេទ៖ បច្ចេកវិទ្យា

"ប្រព័ន្ធបើកចំហ" ការបង្កើតកុំព្យូទ័រនឹងមិនអាចទៅរួចទេ ប្រសិនបើដំណាលគ្នាជាមួយនឹងរូបរាងរបស់វា ទ្រឹស្ដីនៃការសរសេរកូដសញ្ញានឹងមិនត្រូវបានបង្កើតឡើង។ ទ្រឹស្ដីសរសេរកូដគឺជាផ្នែកមួយនៃគណិតវិទ្យាដែលជះឥទ្ធិពលយ៉ាងខ្លាំងដល់ការអភិវឌ្ឍន៍កុំព្យូទ័រ។

"ប្រព័ន្ធបើកចំហ"

ការបង្កើតកុំព្យូទ័រនឹងមិនអាចទៅរួចនោះទេ ប្រសិនបើដំណាលគ្នាជាមួយនឹងរូបរាងរបស់វា ទ្រឹស្តីនៃការសរសេរកូដសញ្ញាមិនត្រូវបានបង្កើតឡើង។

ទ្រឹស្ដីការសរសេរកូដគឺជាផ្នែកមួយក្នុងចំនោមផ្នែកទាំងនោះនៃគណិតវិទ្យាដែលមានឥទ្ធិពលគួរឱ្យកត់សម្គាល់លើការអភិវឌ្ឍន៍កុំព្យូទ័រ។ វិសាលភាពរបស់វាពង្រីកដល់ការបញ្ជូនទិន្នន័យតាមបណ្តាញពិត (ឬគ្មានសម្លេង) ហើយប្រធានបទគឺដើម្បីធានាភាពត្រឹមត្រូវនៃព័ត៌មានដែលបានបញ្ជូន។ ម្យ៉ាងវិញទៀត វាសិក្សាពីរបៀបដែលល្អបំផុតក្នុងការវេចខ្ចប់ទិន្នន័យ ដូច្នេះបន្ទាប់ពីផ្តល់សញ្ញា ពត៌មានដែលមានប្រយោជន៍អាចត្រូវបានស្រង់ចេញពីទិន្នន័យដោយភាពជឿជាក់ និងងាយស្រួល។ ពេលខ្លះទ្រឹស្ដីការសរសេរកូដត្រូវបានច្រលំជាមួយនឹងការអ៊ិនគ្រីប ប៉ុន្តែនេះមិនមែនជាការពិតទេ៖ គ្រីបគ្រីបដោះស្រាយបញ្ហាបញ្ច្រាស គោលដៅរបស់វាគឺធ្វើឱ្យពិបាកក្នុងការទាញយកព័ត៌មានពីទិន្នន័យ។

តម្រូវការក្នុងការអ៊ិនកូដទិន្នន័យត្រូវបានជួបប្រទះជាលើកដំបូងជាងមួយរយហាសិបឆ្នាំមុន មិនយូរប៉ុន្មានបន្ទាប់ពីការបង្កើតទូរលេខ។ បណ្តាញទាំងនោះមានតម្លៃថ្លៃ និងមិនអាចជឿទុកចិត្តបាន ដែលធ្វើឱ្យមានភារកិច្ចកាត់បន្ថយការចំណាយ និងបង្កើនភាពជឿជាក់នៃការបញ្ជូនទូរលេខជាបន្ទាន់។ បញ្ហា​នេះ​កាន់តែ​ធ្ងន់ធ្ងរ​ឡើង​ដោយ​ការ​ដាក់​ខ្សែកាប​ឆ្លងកាត់​អាត្លង់ទិក។ ចាប់តាំងពីឆ្នាំ 1845 សៀវភៅកូដពិសេសបានចូលប្រើ។ ដោយ​មាន​ជំនួយ​របស់​ពួក​គេ អ្នក​ទូរលេខ​បាន "បង្ហាប់" សារ​ដោយ​ដៃ ដោយ​ជំនួស​ពាក្យ​ធម្មតា​ដោយ​លេខ​កូដ​ខ្លី​ជាង។ ក្នុងពេលជាមួយគ្នានេះ ដើម្បីពិនិត្យមើលភាពត្រឹមត្រូវនៃការផ្ទេរនេះ parity បានចាប់ផ្តើមប្រើ វិធីសាស្ត្រដែលត្រូវបានប្រើផងដែរដើម្បីពិនិត្យមើលភាពត្រឹមត្រូវនៃការបញ្ចូលកាតដែលដាល់នៅក្នុងកុំព្យូទ័រនៃជំនាន់ទីមួយ និងទីពីរ។ ដើម្បីធ្វើដូច្នេះបាន កាតដែលបានរៀបចំជាពិសេសជាមួយ checksum ត្រូវបានបញ្ចូលទៅក្នុងប្រអប់បញ្ចូលចុងក្រោយ។ ប្រសិនបើឧបករណ៍បញ្ចូលមិនគួរឱ្យទុកចិត្តខ្លាំង (ឬបន្ទះធំពេក) នោះកំហុសអាចកើតឡើង។ ដើម្បីកែវា នីតិវិធីបញ្ចូលត្រូវបានធ្វើម្តងទៀតរហូតទាល់តែមូលប្បទានប័ត្រដែលបានគណនាត្រូវគ្នានឹងចំនួនទឹកប្រាក់ដែលបានរក្សាទុកនៅលើកាត។ មិនត្រឹមតែគ្រោងការណ៍នេះមានការរអាក់រអួលប៉ុណ្ណោះទេ វាក៏មានកំហុសទ្វេដងផងដែរ។ ជាមួយនឹងការអភិវឌ្ឍន៍បណ្តាញទំនាក់ទំនង យន្តការត្រួតពិនិត្យដែលមានប្រសិទ្ធភាពជាងមុនត្រូវបានទាមទារ។

ដំណោះស្រាយទ្រឹស្តីដំបូងចំពោះបញ្ហានៃការបញ្ជូនទិន្នន័យតាមបណ្តាញគ្មានសម្លេងត្រូវបានស្នើឡើងដោយលោក Claude Shannon ដែលជាស្ថាបនិកនៃទ្រឹស្តីព័ត៌មានស្ថិតិ។ Shannon គឺជាតារាមួយរូបក្នុងសម័យកាលរបស់គាត់ គាត់គឺជាឥស្សរជនសិក្សានៅសហរដ្ឋអាមេរិក។ ក្នុងនាមជានិស្សិតបញ្ចប់ការសិក្សានៅ Vannevar Bush ក្នុងឆ្នាំ 1940 គាត់បានទទួលរង្វាន់ណូបែល (មិនត្រូវច្រឡំជាមួយនឹងរង្វាន់ណូបែល!) ដែលត្រូវបានប្រគល់ជូនអ្នកវិទ្យាសាស្ត្រដែលមានអាយុក្រោម 30 ឆ្នាំ។ ពេលនៅឯ Bell Labs Shannon បានសរសេរថា "A Mathematical Theory of Message Transmission" (1948) ដែលគាត់បានបង្ហាញថា ប្រសិនបើ bandwidth នៃ channel ធំជាង entropy នៃ message source នោះ message អាចត្រូវបាន encode ដូច្នេះវានឹងមាន បញ្ជូនដោយគ្មានការពន្យាពេល។ ការសន្និដ្ឋាននេះមាននៅក្នុងទ្រឹស្តីបទមួយដែលបង្ហាញដោយ Shannon ដែលអត្ថន័យរបស់វាពុះកញ្ជ្រោលទៅនឹងការពិតដែលថាប្រសិនបើមានឆានែលដែលមានកម្រិតបញ្ជូនគ្រប់គ្រាន់ សារអាចត្រូវបានបញ្ជូនដោយការពន្យារពេលខ្លះ។ លើសពីនេះទៀតគាត់បានបង្ហាញពីលទ្ធភាពទ្រឹស្តីនៃការបញ្ជូនដែលអាចទុកចិត្តបាននៅក្នុងវត្តមាននៃសំលេងរំខាននៅក្នុងឆានែល។ រូបមន្ត C = W log ((P+N)/N) ដែលឆ្លាក់នៅលើវិមានដ៏សមរម្យមួយដល់ Shannon ដែលបានដំឡើងនៅស្រុកកំណើតរបស់គាត់ក្នុងរដ្ឋ Michigan ត្រូវបានប្រៀបធៀបតម្លៃជាមួយនឹងរូបមន្តរបស់ Albert Einstein E = mc 2 ។

ការងាររបស់ Shannon បានបង្កើតឱ្យមានការស្រាវជ្រាវបន្ថែមជាច្រើនក្នុងវិស័យទ្រឹស្តីព័ត៌មាន ប៉ុន្តែពួកគេមិនមានការអនុវត្តវិស្វកម្មជាក់ស្តែងទេ។ ការផ្លាស់ប្តូរពីទ្រឹស្ដីទៅការអនុវត្តគឺអាចធ្វើទៅបានដោយការខិតខំប្រឹងប្រែងរបស់លោក Richard Hamming ដែលជាសហសេវិករបស់ Shannon នៅ Bell Labs ដែលបានទទួលកិត្តិនាមសម្រាប់ការរកឃើញថ្នាក់នៃកូដដែលត្រូវបានគេហៅថា "Hamming codes" ។ មានរឿងព្រេងមួយថាការរអាក់រអួលនៃការធ្វើការជាមួយសន្លឹកបៀដែលដាល់នៅលើម៉ាស៊ីនគណនាការបញ្ជូនត Bell Model V នៅពាក់កណ្តាលទសវត្សរ៍ទី 40 បានជំរុញឱ្យមានការបង្កើតលេខកូដ Hamming របស់ពួកគេ។ គាត់ត្រូវបានគេផ្តល់ពេលវេលាឱ្យធ្វើការលើម៉ាស៊ីននៅថ្ងៃចុងសប្តាហ៍ នៅពេលដែលមិនមានប្រតិបត្តិករ ហើយគាត់ផ្ទាល់ត្រូវរវល់ជាមួយការបញ្ចូល។ វាអាចទៅរួច ប៉ុន្តែ Hamming បានស្នើកូដដែលមានសមត្ថភាពកែតម្រូវកំហុសក្នុងបណ្តាញទំនាក់ទំនង រួមទាំងខ្សែបញ្ជូនទិន្នន័យនៅក្នុងកុំព្យូទ័រ ជាចម្បងរវាង processor និង memory។ កូដ Hamming បានក្លាយជាភស្តុតាងនៃរបៀបដែលលទ្ធភាពដែលបង្ហាញដោយទ្រឹស្តីបទរបស់ Shannon អាចត្រូវបានគេដឹងនៅក្នុងការអនុវត្ត។

Hamming បានបោះពុម្ភផ្សាយក្រដាសរបស់គាត់នៅឆ្នាំ 1950 ទោះបីជារបាយការណ៍ផ្ទៃក្នុងកាលបរិច្ឆេទទ្រឹស្តីសរសេរកូដរបស់គាត់ដល់ឆ្នាំ 1947 ក៏ដោយ។ ដូច្នេះហើយ អ្នកខ្លះជឿថា Hamming មិនមែន Shannon គួរតែត្រូវបានគេចាត់ទុកថាជាបិតានៃទ្រឹស្តីសរសេរកូដ។ ទោះជាយ៉ាងណាក៏ដោយនៅក្នុងប្រវត្តិសាស្រ្តនៃបច្ចេកវិទ្យាវាគ្មានប្រយោជន៍ទេក្នុងការស្វែងរកអ្នកដំបូង។

វាប្រាកដណាស់ថាវាគឺជា Hamming ដែលដំបូងបានស្នើ "កូដកែកំហុស" (Error-Correcting Code, ECC)។ ការកែប្រែទំនើបនៃកូដទាំងនេះត្រូវបានប្រើនៅក្នុងប្រព័ន្ធផ្ទុកទិន្នន័យទាំងអស់ និងសម្រាប់ការផ្លាស់ប្តូររវាង processor និង RAM។ បំរែបំរួលមួយរបស់ពួកគេ លេខកូដ Reed-Solomon ត្រូវបានប្រើនៅក្នុងស៊ីឌី ដែលអនុញ្ញាតឱ្យការថតសំឡេងត្រូវបានចាក់ដោយមិនមានសំឡេងរំខាន និងអាចបណ្តាលឱ្យមានកោស និងភាគល្អិតធូលី។ មានកំណែជាច្រើននៃកូដដោយផ្អែកលើ Hamming ពួកវាខុសគ្នានៅក្នុងក្បួនដោះស្រាយការសរសេរកូដ និងចំនួនប៊ីតធីក។ លេខកូដបែបនេះបានទទួលនូវសារៈសំខាន់ជាពិសេសនៅក្នុងការតភ្ជាប់ជាមួយនឹងការអភិវឌ្ឍនៃការទំនាក់ទំនងអវកាសជ្រៅជាមួយស្ថានីយ interplanetary ឧទាហរណ៍មានលេខកូដ Reed-Muller ដែលមាន 32 ប៊ីតសម្រាប់ព័ត៌មានប្រាំពីរប៊ីត ឬ 26 សម្រាប់ប្រាំមួយ។

ក្នុងចំណោមលេខកូដ ECC ចុងក្រោយគេ លេខកូដ LDPC (Low-Density Parity-check Code) គួរតែត្រូវបានលើកឡើង។ តាមពិតទៅ ពួកគេត្រូវបានគេស្គាល់ប្រហែលសាមសិបឆ្នាំមកហើយ ប៉ុន្តែចំណាប់អារម្មណ៍ពិសេសចំពោះពួកគេត្រូវបានរកឃើញយ៉ាងជាក់លាក់ក្នុងប៉ុន្មានឆ្នាំថ្មីៗនេះ នៅពេលដែលទូរទស្សន៍និយមន័យខ្ពស់បានចាប់ផ្តើមអភិវឌ្ឍ។ លេខកូដ LDPC មិនអាចទុកចិត្តបាន 100% ទេ ប៉ុន្តែអត្រាកំហុសអាចត្រូវបានកែតម្រូវទៅតាមកម្រិតដែលចង់បាន ខណៈពេលដែលប្រើប្រាស់កម្រិតបញ្ជូនរបស់ប៉ុស្តិ៍ឱ្យបានពេញលេញបំផុត។ "Turbo Codes" គឺនៅជិតពួកវា ពួកវាមានប្រសិទ្ធភាពនៅពេលធ្វើការជាមួយវត្ថុដែលមានទីតាំងក្នុងលំហដ៏ជ្រៅ និងជាមួយនឹងកម្រិតបញ្ជូនឆានែលមានកម្រិត។

ឈ្មោះរបស់ Vladimir Alexandrovich Kotelnikov ត្រូវបានចារឹកយ៉ាងរឹងមាំនៅក្នុងប្រវត្តិសាស្រ្តនៃទ្រឹស្តីសរសេរកូដ។ នៅឆ្នាំ 1933 នៅក្នុង "សម្ភារៈនៅលើវិទ្យុទំនាក់ទំនងសម្រាប់សមាជសហភាពទាំងអស់ជាលើកដំបូងស្តីពីការកសាងឡើងវិញបច្ចេកទេសនៃការទំនាក់ទំនង" គាត់បានបោះពុម្ពផ្សាយការងារ "នៅលើកម្រិតបញ្ជូន? អេធើរ? និងខ្សែភ្លើង? ឈ្មោះរបស់ Kotelnikov ជាការស្មើគ្នាត្រូវបានបញ្ចូលក្នុងឈ្មោះនៃទ្រឹស្តីបទដ៏សំខាន់បំផុតមួយនៅក្នុងទ្រឹស្តីសរសេរកូដ។ ទ្រឹស្តីបទនេះកំណត់លក្ខខណ្ឌដែលសញ្ញាបញ្ជូនអាចត្រូវបានស្ដារឡើងវិញដោយមិនបាត់បង់ព័ត៌មាន។

ទ្រឹស្តីបទនេះត្រូវបានគេហៅផ្សេងៗគ្នា រួមទាំង "ទ្រឹស្តីបទ WKS" (អក្សរកាត់ WKS យកមកពី Whittaker, Kotelnikov, Shannon)។ នៅក្នុងប្រភពមួយចំនួន ទាំងទ្រឹស្តីបទគំរូ Nyquist-Shannon និងទ្រឹស្តីបទគំរូ Whittaker-Shannon ត្រូវបានគេប្រើ ហើយនៅក្នុងសៀវភៅសិក្សារបស់សាកលវិទ្យាល័យក្នុងស្រុក ជាធម្មតា "ទ្រឹស្តីបទរបស់ Kotelnikov" ត្រូវបានរកឃើញញឹកញាប់បំផុត។ តាមពិតទ្រឹស្តីបទមានប្រវត្តិយូរជាងនេះ។ ផ្នែកទីមួយរបស់វាត្រូវបានបញ្ជាក់នៅឆ្នាំ 1897 ដោយគណិតវិទូជនជាតិបារាំង Emile Borel ។ Edmund Whittaker បានចូលរួមចំណែកក្នុងឆ្នាំ 1915 ។ នៅឆ្នាំ 1920 ជនជាតិជប៉ុន Kinnosuki Ogura បានបោះពុម្ពផ្សាយការកែតម្រូវចំពោះការស្រាវជ្រាវរបស់ Whittaker ហើយនៅឆ្នាំ 1928 ជនជាតិអាមេរិក Harry Nyquist បានកែលម្អគោលការណ៍ឌីជីថល និងការបង្កើតឡើងវិញនូវសញ្ញាអាណាឡូក។

លោក Claude Shannon(1916 - 2001) ពីឆ្នាំសិក្សារបស់គាត់បានបង្ហាញចំណាប់អារម្មណ៍ស្មើគ្នាក្នុងគណិតវិទ្យា និងវិស្វកម្មអគ្គិសនី។ នៅឆ្នាំ 1932 គាត់បានចូលសាកលវិទ្យាល័យ Michigan ក្នុងឆ្នាំ 1936 - នៅវិទ្យាស្ថានបច្ចេកវិទ្យា Massachusetts ដែលគាត់បានបញ្ចប់ការសិក្សានៅឆ្នាំ 1940 ដោយទទួលបានសញ្ញាបត្រពីរ - ថ្នាក់អនុបណ្ឌិតផ្នែកវិស្វកម្មអគ្គិសនី និងបណ្ឌិតផ្នែកគណិតវិទ្យា។ នៅឆ្នាំ 1941 Shannon បានចូលរួមជាមួយ Bell Laboratories ។ នៅទីនេះគាត់បានចាប់ផ្តើមបង្កើតគំនិតដែលក្រោយមកបាននាំឱ្យមានទ្រឹស្តីព័ត៌មាន។ នៅឆ្នាំ 1948 Shannon បានបោះពុម្ពអត្ថបទ "ទ្រឹស្តីគណិតវិទ្យានៃការទំនាក់ទំនង" ដែលគំនិតជាមូលដ្ឋានរបស់អ្នកវិទ្យាសាស្ត្រត្រូវបានបង្កើតឡើងជាពិសេសការកំណត់បរិមាណនៃព័ត៌មានតាមរយៈ entropy ហើយក៏បានស្នើឯកតានៃព័ត៌មានដែលកំណត់ជម្រើសនៃពីរ។ ជម្រើសប្រហែលស្មើគ្នា នោះគឺជាអ្វីដែលក្រោយមកហៅថាបន្តិច។ នៅឆ្នាំ 1957-1961 Shannon បានបោះពុម្ពស្នាដៃដែលបង្ហាញពីទ្រឹស្តីបទឆ្លងកាត់សម្រាប់បណ្តាញទំនាក់ទំនងដែលមានសំលេងរំខាន ដែលឥឡូវនេះមានឈ្មោះរបស់គាត់។ នៅឆ្នាំ 1957 Shannon បានក្លាយជាសាស្រ្តាចារ្យនៅវិទ្យាស្ថានបច្ចេកវិទ្យា Massachusetts ពីកន្លែងដែលគាត់បានចូលនិវត្តន៍ 21 ឆ្នាំក្រោយមក។ នៅលើ "ការសម្រាកដែលសមនឹងទទួលបាន" Shannon បានលះបង់ខ្លួនឯងទាំងស្រុងចំពោះចំណង់ចំណូលចិត្តចាស់របស់គាត់សម្រាប់ការលេងល្បែង។ គាត់បានបង្កើតម៉ាស៊ីន juggling ជាច្រើន ហើយថែមទាំងបានបង្កើតទ្រឹស្តីទូទៅនៃការ juggling ។

លោក Richard Hamming(1915 - 1998) បានចាប់ផ្តើមការសិក្សារបស់គាត់នៅសាកលវិទ្យាល័យ Chicago ជាកន្លែងដែលគាត់បានទទួលបរិញ្ញាបត្រនៅឆ្នាំ 1937 ។ នៅឆ្នាំ 1939 គាត់បានទទួលសញ្ញាប័ត្រអនុបណ្ឌិតពីសាកលវិទ្យាល័យ Nebraska និងបណ្ឌិតផ្នែកគណិតវិទ្យាពីសាកលវិទ្យាល័យ Illinois ។ នៅឆ្នាំ 1945 Hamming បានចាប់ផ្តើមធ្វើការលើគម្រោង Manhattan ដែលជាកិច្ចខិតខំប្រឹងប្រែងស្រាវជ្រាវរបស់រដ្ឋាភិបាលដ៏ធំដើម្បីសាងសង់គ្រាប់បែកបរមាណូ។ នៅឆ្នាំ 1946 Hamming បានចូលរួមជាមួយ Bell Telephone Laboratories ជាកន្លែងដែលគាត់បានធ្វើការជាមួយ Claude Shannon ។ នៅឆ្នាំ 1976 Hamming បានទទួលកៅអីនៅសាលា Naval Postgraduate School ក្នុងទីក្រុង Monterey រដ្ឋ California ។

ការងារដែលធ្វើឱ្យគាត់ល្បីល្បាញដែលជាការសិក្សាជាមូលដ្ឋាននៃការរកឃើញកំហុសនិងលេខកូដកែតម្រូវត្រូវបានបោះពុម្ពដោយ Hamming ក្នុងឆ្នាំ 1950 ។ នៅឆ្នាំ 1956 គាត់បានចូលរួមក្នុងការអភិវឌ្ឍន៍មួយនៃ IBM 650 mainframes ដំបូង។ ការងាររបស់គាត់បានដាក់មូលដ្ឋានគ្រឹះសម្រាប់ភាសាសរសេរកម្មវិធី ដែលក្រោយមកបានវិវត្តទៅជាភាសាសរសេរកម្មវិធីកម្រិតខ្ពស់។ ក្នុងការទទួលស្គាល់ការរួមចំណែករបស់ Hamming ក្នុងវិស័យវិទ្យាសាស្ត្រកុំព្យូទ័រ IEEE បានបង្កើតមេដាយសេវាកម្មកិត្តិយសសម្រាប់វិទ្យាសាស្ត្រកុំព្យូទ័រ និងទ្រឹស្តីប្រព័ន្ធ ដែលដាក់ឈ្មោះតាមគាត់។

Vladimir Kotelnikov(1908 - 2005) នៅឆ្នាំ 1926 គាត់បានចូលរៀនផ្នែកវិស្វកម្មអគ្គិសនីនៃសាលាបច្ចេកទេសជាន់ខ្ពស់ម៉ូស្គូ ដែលមានឈ្មោះថា NE Bauman (MVTU) ប៉ុន្តែបានក្លាយជានិស្សិតបញ្ចប់ការសិក្សានៅវិទ្យាស្ថានវិស្វកម្មថាមពលម៉ូស្គូ (MPEI) ដែលបានបំបែកចេញពី MVTU ជាវិទ្យាស្ថានឯករាជ្យមួយ។ . ពេលកំពុងសិក្សានៅសាលាបញ្ចប់ការសិក្សា (1931-1933) លោក Kotelnikov បានបង្កើតគណិតវិទ្យាយ៉ាងជាក់លាក់ និងបានបង្ហាញពី "ទ្រឹស្តីបទយោង" ដែលក្រោយមកត្រូវបានដាក់ឈ្មោះតាមគាត់។ បន្ទាប់ពីបញ្ចប់ការសិក្សានៅវិទ្យាល័យនៅឆ្នាំ 1933 Kotelnikov ដែលនៅសេសសល់ការបង្រៀននៅវិទ្យាស្ថានវិស្វកម្មថាមពលម៉ូស្គូបានទៅធ្វើការនៅវិទ្យាស្ថានស្រាវជ្រាវកណ្តាលនៃទំនាក់ទំនង (TsNIIS) ។ នៅឆ្នាំ 1941 V. A. Kotelnikov បានបង្កើតជំហរច្បាស់លាស់មួយលើតម្រូវការដែលប្រព័ន្ធដែលមិនអាចបកស្រាយបានតាមគណិតវិទ្យាគួរតែបំពេញ ហើយភស្តុតាងមួយត្រូវបានផ្តល់ឱ្យពីភាពមិនអាចទៅរួចនៃការបកស្រាយវា។ នៅឆ្នាំ 1944 Kotelnikov បានកាន់តំណែងជាសាស្រ្តាចារ្យព្រឹទ្ធបុរសនៃមហាវិទ្យាល័យវិស្វកម្មវិទ្យុនៃ MPEI ជាកន្លែងដែលគាត់បានធ្វើការរហូតដល់ឆ្នាំ 1980 ។ នៅឆ្នាំ 1953 នៅអាយុ 45 ឆ្នាំ Kotelnikov ត្រូវបានជ្រើសរើសភ្លាមៗជាសមាជិកពេញសិទ្ធិនៃបណ្ឌិត្យសភាវិទ្យាសាស្ត្រសហភាពសូវៀត។ ពីឆ្នាំ 1968 ដល់ឆ្នាំ 1990 V. A. Kotelnikov ក៏ជាសាស្រ្តាចារ្យ ជាប្រធាននាយកដ្ឋាននៅវិទ្យាស្ថានរូបវិទ្យា និងបច្ចេកវិទ្យាទីក្រុងម៉ូស្គូផងដែរ។


កំណើតនៃទ្រឹស្តីសរសេរកូដ


ទ្រឹស្តីនៃការសរសេរកូដ។ ប្រភេទនៃការសរសេរកូដ គោលគំនិតជាមូលដ្ឋាននៃទ្រឹស្ដីសរសេរកូដពីមុន ឧបករណ៍សរសេរកូដបានដើរតួនាទីជាជំនួយ ហើយមិនត្រូវបានចាត់ទុកថាជាប្រធានបទដាច់ដោយឡែកនៃការសិក្សាគណិតវិទ្យានោះទេ ប៉ុន្តែជាមួយនឹងការមកដល់នៃកុំព្យូទ័រ ស្ថានភាពបានផ្លាស់ប្តូរយ៉ាងខ្លាំង។ ការសរសេរកូដតាមព្យញ្ជនៈជ្រាបចូលទៅក្នុងបច្ចេកវិជ្ជាព័ត៌មាន និងជាបញ្ហាស្នូលក្នុងការដោះស្រាយបញ្ហាផ្សេងៗនៃកិច្ចការសរសេរកម្មវិធី (អនុវត្តទាំងអស់)៖ ۞ តំណាងឱ្យទិន្នន័យនៃលក្ខណៈបំពាន (ឧទាហរណ៍ លេខ អត្ថបទ ក្រាហ្វិក) នៅក្នុងអង្គចងចាំកុំព្យូទ័រ។ ۞ ការការពារព័ត៌មានពីការចូលប្រើដោយគ្មានការអនុញ្ញាត។ ۞ ការធានានូវអភ័យឯកសិទ្ធិសំលេងរំខានកំឡុងពេលបញ្ជូនទិន្នន័យតាមរយៈបណ្តាញទំនាក់ទំនង។ ۞ ការបង្ហាប់ព័ត៌មាននៅក្នុងមូលដ្ឋានទិន្នន័យ។ ទ្រឹស្ដីការសរសេរកូដគឺជាផ្នែកនៃទ្រឹស្ដីព័ត៌មានដែលសិក្សាពីរបៀបដែលសារអាចត្រូវបានសម្គាល់ដោយសញ្ញាដែលតំណាងឱ្យពួកគេ។ កិច្ចការ៖ សម្របសម្រួលប្រភពព័ត៌មានជាមួយបណ្តាញទំនាក់ទំនង។ វត្ថុ៖ ព័ត៌មានដាច់ដោយឡែក ឬជាបន្តដែលផ្គត់ផ្គង់ដល់អ្នកប្រើប្រាស់តាមរយៈប្រភពព័ត៌មាន។ ការអ៊ិនកូដគឺជាការបំប្លែងព័ត៌មានទៅជារូបមន្តដែលងាយស្រួលសម្រាប់ការបញ្ជូនតាមបណ្តាញទំនាក់ទំនងជាក់លាក់មួយ។ ឧទាហរណ៍នៃការសរសេរកូដក្នុងគណិតវិទ្យាគឺជាវិធីសាស្ត្រកូអរដោណេដែលណែនាំដោយ Descartes ដែលធ្វើឱ្យវាអាចសិក្សាវត្ថុធរណីមាត្រតាមរយៈកន្សោមវិភាគរបស់ពួកគេក្នុងទម្រង់ជាលេខ អក្សរ និងបន្សំ - រូបមន្ត។ គោលគំនិតនៃការសរសេរកូដមានន័យថា ការបំប្លែងព័ត៌មានទៅជាទម្រង់មួយដែលងាយស្រួលសម្រាប់ការបញ្ជូនតាមបណ្តាញទំនាក់ទំនងជាក់លាក់មួយ។ ការឌិកូដគឺជាការស្ដារសារដែលបានទទួលពីទម្រង់ដែលបានអ៊ិនកូដទៅជាទម្រង់ដែលអាចចូលប្រើបានសម្រាប់អ្នកប្រើប្រាស់។

ប្រធានបទ 5.2 ។ ការសរសេរកូដតាមអក្ខរក្រម ក្នុងករណីទូទៅ បញ្ហាសរសេរកូដអាចត្រូវបានតំណាងដូចខាងក្រោម។ សូមអោយអក្សរ A និង B ពីរត្រូវបានផ្តល់ឱ្យ ដែលរួមមានចំនួនតួអក្សរកំណត់៖ និង។ ធាតុនៃអក្ខរក្រមត្រូវបានគេហៅថាអក្សរ។ សំណុំលំដាប់ក្នុងអក្ខរក្រម A នឹងត្រូវបានគេហៅថាពាក្យមួយ ដែល n =l()=| | លេខ n បង្ហាញចំនួនអក្សរក្នុងពាក្យ ហើយត្រូវបានគេហៅថាប្រវែងនៃពាក្យ, ពាក្យទទេត្រូវបានតំណាងថា: សម្រាប់ពាក្យ, អក្សរ a1, ត្រូវបានគេហៅថាការចាប់ផ្តើម, ឬបុព្វបទនៃពាក្យ, អក្សរ an គឺជាការបញ្ចប់ ឬ postfix នៃពាក្យ។ ហើយពាក្យអាចត្រូវបានផ្សំ។ ដើម្បីធ្វើដូច្នេះបាន បុព្វបទនៃពាក្យទីពីរត្រូវតែធ្វើតាម postfix នៃពាក្យទីមួយភ្លាមៗ ខណៈពេលដែលនៅក្នុងពាក្យថ្មី ពួកវាបាត់បង់ស្ថានភាពដោយធម្មជាតិ លុះត្រាតែពាក្យណាមួយទទេ។ សមាសធាតុនៃពាក្យ និងត្រូវបានតំណាង សមាសធាតុនៃពាក្យដូចគ្នា n ត្រូវបានតាង លើសពីនេះទៀត។ សំណុំនៃពាក្យមិនទទេទាំងអស់នៃអក្ខរក្រម A ត្រូវបានតំណាងដោយ A*៖ សំណុំ A ត្រូវបានគេហៅថាអក្ខរក្រមសារ ហើយសំណុំ B ត្រូវបានគេហៅថាអក្ខរក្រមសរសេរកូដ។ សំណុំនៃពាក្យដែលមាននៅក្នុងអក្ខរក្រម B នឹងត្រូវបានតំណាងដោយ B* ។

សម្គាល់ដោយ F ការគូសវាសនៃពាក្យពីអក្ខរក្រម A ទៅអក្ខរក្រម B. បន្ទាប់មកពាក្យនេះត្រូវបានគេហៅថាកូដនៃពាក្យ។ ការសរសេរកូដគឺជាវិធីសកលនៃការបង្ហាញព័ត៌មានក្នុងអំឡុងពេលផ្ទុក ការបញ្ជូន និងដំណើរការរបស់វាក្នុងទម្រង់ជាប្រព័ន្ធនៃការឆ្លើយឆ្លងរវាងធាតុសារ និងសញ្ញាដែលធាតុទាំងនេះអាចត្រូវបានជួសជុល។ ដូច្នេះ កូដគឺជាច្បាប់សម្រាប់ការបំប្លែងដែលមិនច្បាស់លាស់ (ឧ. មុខងារ) នៃសារពីទម្រង់តំណាងនិមិត្តសញ្ញាមួយ (អក្ខរក្រមដើម A) ទៅមួយទៀត (អក្ខរក្រមវត្ថុ B) ជាធម្មតាដោយមិនបាត់បង់ព័ត៌មានណាមួយឡើយ។ ដំណើរការនៃការបំលែង F: A* B*→ ពាក្យនៃអក្ខរក្រមដើម A ទៅជាអក្ខរក្រម B ត្រូវបានគេហៅថាការសរសេរកូដព័ត៌មាន។ ដំណើរការនៃការបំប្លែងពាក្យមកវិញត្រូវបានគេហៅថា ឌិកូដ។ ដូច្នេះការឌិកូដគឺបញ្ច្រាសនៃ F, i.e. F1. ចូលទៅក្នុងពាក្យមួយ ចាប់តាំងពីសម្រាប់ការបំប្លែងកូដណាមួយ ប្រតិបត្តិការឌិកូដត្រូវតែត្រូវបានអនុវត្ត ការធ្វើផែនទីត្រូវតែដាក់បញ្ច្រាស (ការបដិសេធ)។ ប្រសិនបើ |B|= m នោះ F ត្រូវបានគេហៅថាការសរសេរកូដត្រាប់តាម ករណីទូទៅបំផុតគឺ B = (0, 1) ការសរសេរកូដគោលពីរ។ វាជាករណីនេះត្រូវបានពិចារណាខាងក្រោម។ ប្រសិនបើពាក្យកូដទាំងអស់មានប្រវែងដូចគ្នា នោះកូដត្រូវបានគេហៅថាឯកសណ្ឋាន ឬប្លុក។ ការសរសេរកូដតាមអក្ខរក្រម (ឬអក្សរកាត់អក្សរ) អាចត្រូវបានបញ្ជាក់ដោយតារាងកូដ។ ការជំនួសមួយចំនួននឹងបម្រើជាកូដ ឬមុខងារអ៊ិនកូដ។ បន្ទាប់មកកន្លែងណា។ ការសរសេរកូដតាមសំបុត្របែបនេះត្រូវបានតំណាងថាជាសំណុំនៃកូដបឋម។ ការអ៊ិនកូដតាមអក្ខរក្រមអាចត្រូវបានប្រើសម្រាប់សំណុំសារណាមួយ។ ដូច្នេះការអ៊ិនកូដអក្ខរក្រមគឺសាមញ្ញបំផុត ហើយតែងតែអាចបញ្ចូលនៅលើអក្ខរក្រមដែលមិនទទេ។ . លេខកូដអក្សរជាច្រើន។

ឧទាហរណ៍ ចូរឱ្យអក្សរ A = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) B = (0, 1) ត្រូវបានផ្តល់ឱ្យ។ បន្ទាប់មកតារាងសរសេរកូដអាចជាការជំនួស៖ . នេះ​គឺ​ជា​ការ​អ៊ិនកូដ BCD វា​គឺ​មួយ​ទៅ​មួយ ហើយ​ដូច្នេះ​អាច​ឌិកូដ​បាន។ ទោះយ៉ាងណាក៏ដោយ គ្រោងការណ៍មិនមែនមួយទល់នឹងមួយទេ។ ឧទាហរណ៍ សំណុំនៃ 111111 ប្រាំមួយអាចផ្គូផ្គងទាំងពាក្យ 333 និង 77 ក៏ដូចជា 111111, 137, 3311 ឬ 7111 បូកនឹងការផ្លាស់ប្តូរណាមួយ។ គ្រោងការណ៍សរសេរកូដអក្ខរក្រមត្រូវបានគេហៅថាបុព្វបទ ប្រសិនបើកូដបឋមនៃអក្សរមួយមិនមែនជាបុព្វបទនៃកូដបឋមនៃអក្សរមួយទៀត។ គ្រោងការណ៍សរសេរកូដតាមអក្ខរក្រមត្រូវបានគេនិយាយថាអាចបំបែកបាន ប្រសិនបើពាក្យណាមួយដែលផ្សំឡើងដោយកូដបឋម បំបែកទៅជាកូដបឋមតាមវិធីតែមួយគត់។ ការអ៊ិនកូដតាមអក្ខរក្រមជាមួយនឹងគ្រោងការណ៍ដែលអាចបំបែកបានអនុញ្ញាតឱ្យការឌិកូដ។ វាអាចត្រូវបានបង្ហាញថាគ្រោងការណ៍បុព្វបទគឺអាចបំបែកបាន។ ដើម្បីឱ្យគ្រោងការណ៍សរសេរកូដតាមអក្ខរក្រមអាចបំបែកបាន ប្រវែងនៃកូដបឋមត្រូវតែបំពេញទំនាក់ទំនងដែលគេស្គាល់ថាជាវិសមភាពរបស់ Macmillan ។ វិសមភាពរបស់ Macmillan ប្រសិនបើគ្រោងការណ៍សរសេរកូដអក្ខរក្រម

គឺអាចបំបែកបាន នោះវិសមភាពខាងក្រោមត្រូវបានរក្សា។ កូដបឋមនៃអក្សរ a គឺជាបុព្វបទនៃកូដបឋមនៃអក្សរ ខ។ ប្រធានបទ 5.3 ។ ការសរសេរកូដដដែលៗជាអប្បបរមា នៅក្នុងការអនុវត្ត វាជារឿងសំខាន់ដែលលេខកូដសារខ្លីបំផុតតាមដែលអាចធ្វើទៅបាន។ ការសរសេរកូដតាមអក្ខរក្រមគឺសមរម្យសម្រាប់សារណាមួយ ប៉ុន្តែប្រសិនបើគ្មានអ្វីត្រូវបានគេដឹងអំពីសំណុំនៃពាក្យទាំងអស់នៃអក្ខរក្រម A នោះវាពិបាកក្នុងការបង្កើតបញ្ហាបង្កើនប្រសិទ្ធភាពយ៉ាងជាក់លាក់។ ទោះយ៉ាងណាក៏ដោយ នៅក្នុងការអនុវត្ត ព័ត៌មានបន្ថែម ច្រើនតែមាន។ ឧទាហរណ៍ សម្រាប់សារដែលបង្ហាញជាភាសាធម្មជាតិ ព័ត៌មានបន្ថែមបែបនេះអាចជាការចែកចាយប្រូបាប៊ីលីតេនៃការកើតឡើងនៃអក្សរនៅក្នុងសារ។ បន្ទាប់មកបញ្ហានៃការបង្កើតកូដដ៏ល្អប្រសើរមួយទទួលបានរូបមន្តគណិតវិទ្យាពិតប្រាកដ និងដំណោះស្រាយយ៉ាងម៉ត់ចត់។

អនុញ្ញាតឱ្យគ្រោងការណ៍សរសេរកូដអក្ខរក្រមដែលអាចបំបែកបានមួយចំនួនត្រូវបានផ្តល់ឱ្យ។ បន្ទាប់មកគ្រោងការណ៍ណាមួយដែលសំណុំដែលបានបញ្ជាគឺជាការបំលែងនៃសំណុំដែលបានបញ្ជាទិញក៏នឹងអាចបំបែកបានផងដែរ។ ក្នុងករណីនេះ ប្រសិនបើប្រវែងនៃសំណុំកូដបឋមគឺស្មើគ្នា នោះការផ្លាស់ប្តូររបស់ពួកគេនៅក្នុងគ្រោងការណ៍មិនប៉ះពាល់ដល់ប្រវែងនៃសារដែលបានអ៊ិនកូដនោះទេ។ ក្នុងករណីដែលប្រវែងនៃកូដបឋមមានភាពខុសប្លែកគ្នានោះ ប្រវែងនៃកូដសារដោយផ្ទាល់អាស្រ័យទៅលើកូដបឋមមួយណាដែលត្រូវនឹងអក្សរណាមួយ និងលើសមាសភាពនៃអក្សរនៅក្នុងសារ។ ដោយបានផ្តល់សារជាក់លាក់ និងគ្រោងការណ៍សរសេរកូដជាក់លាក់ វាអាចជ្រើសរើសការផ្លាស់ប្តូរកូដបែបនេះ ដែលប្រវែងនៃកូដសារនឹងមានតិចតួចបំផុត។ ក្បួនដោះស្រាយសម្រាប់កំណត់លេខកូដបឋម ដែលប្រវែងនៃកូដសារថេរ S នឹងមានតិចតួចបំផុតសម្រាប់គ្រោងការណ៍ថេរ៖ ۞ តម្រៀបអក្សរតាមលំដាប់ចុះនៃចំនួនកើតឡើង។ ۞ តម្រៀបកូដបឋមតាមលំដាប់ឡើងនៃប្រវែង; ۞ ដាក់លេខកូដស្របតាមអក្សរតាមលំដាប់កំណត់។ អនុញ្ញាតឱ្យអក្ខរក្រម និងប្រូបាប៊ីលីតេនៃការកើតឡើងនៃអក្សរនៅក្នុងសារត្រូវបានផ្តល់ឱ្យ៖

ដែល pi គឺជាប្រូបាប៊ីលីតេនៃរូបរាងនៃអក្សរ ai ហើយអក្សរដែលមានប្រូបាប៊ីលីតេសូន្យនៃការបង្ហាញសារត្រូវបានដកចេញ ហើយអក្សរត្រូវបានតម្រៀបតាមលំដាប់ចុះនៃប្រូបាប៊ីលីតេនៃសារកើតឡើងរបស់ពួកគេ ដែលត្រូវបានកំណត់ និងកំណត់ជាឧទាហរណ៍។ សម្រាប់គ្រោងការណ៍សរសេរកូដតាមអក្ខរក្រមដែលអាចបំបែកបាន A=(a,b), B=(0,1) ក្រោមការចែកចាយប្រូបាប៊ីលីតេ តម្លៃសរសេរកូដគឺ ហើយនៅក្រោមការចែកចាយប្រូបាប៊ីលីតេ តម្លៃសរសេរកូដគឺ

ប្រធានបទ 5.4 ។ Huffman encoding ក្បួនដោះស្រាយនេះត្រូវបានបង្កើតឡើងក្នុងឆ្នាំ 1952 ដោយ David Huffman ។ ប្រធានបទ 5.5 ។ ការសរសេរកូដនព្វន្ធ ដូចនៅក្នុងក្បួនដោះស្រាយ Huffman អ្វីគ្រប់យ៉ាងចាប់ផ្តើមដោយតារាងនៃធាតុ និងប្រូបាប៊ីលីតេដែលត្រូវគ្នា។ ឧបមាថាអក្ខរក្រមបញ្ចូលមានធាតុបីគឺ a1, a2 និង a3 ហើយក្នុងពេលតែមួយ P(a1) = 1/2 P(a2) = 1/3 P(a3) = 1/6 ឧបមាថាយើងត្រូវការផងដែរ។ ដើម្បីអ៊ិនកូដលំដាប់ a1, a1, a2, a3 ។ ចូរយើងបែងចែកចន្លោះពេល ដែល p ជាចំនួនថេរមួយចំនួន 0<р<(r­1)/2r, а "мощностная" граница где Tr(p)=­p logr(p/(r­ 1))­(1­р)logr(l­ p), существенно улучшена. Имеется предположение, чт о верхняя граница полученная методом случайного выбора кода, является асимптотически точной, т. е. Ir(п,[ рп])~пТ r(2р).Доказательство или опровержение этого предположения ­ одна из центральны х задач теории кодирования. Большинство конструкций помехоустойчивых кодов являются эффективными, когда длин а пкода достаточновелика. В связи с этим особое значение приобретают вопросы, связанны е со сложностью устройств,осуществляющих кодирование и декодирование (кодера и деко дера). Ограничения на допустимый типдекодера или его сложность могут приводить к увел ичению избыточности, необходимой для обеспечениязаданной помехоустойчивости. Напр., минимальная избыточность кода в В n 2, для к­рого существует декодер,состоящий из регист

ra shift និង​ធាតុ​ភាគ​ច្រើន​មួយ​និង​ការ​កែ​កំហុស​មួយ, មាន​លំដាប់ (ប្រៀបធៀប​ជាមួយ (2)) ។ ជាគណិតវិទ្យា ម៉ូដែលអ៊ិនកូដឌ័រ និងឌិកូដជាធម្មតាត្រូវបានពិចារណាពីសៀគ្វីនៃធាតុមុខងារ ហើយភាពស្មុគស្មាញត្រូវបានគេយល់ថាជាចំនួនធាតុនៅក្នុងសៀគ្វី។ សម្រាប់ថ្នាក់ដែលគេស្គាល់នៃកូដកែកំហុស ការសិក្សាមួយត្រូវបានធ្វើឡើងពីក្បួនដោះស្រាយដែលអាចធ្វើបានសម្រាប់ K. និង D. ហើយព្រំដែនខាងលើលើភាពស្មុគស្មាញនៃកម្មវិធីបំប្លែង និងឌិកូដត្រូវបានទទួល។ ទំនាក់​ទំនង​មួយ​ចំនួន​ត្រូវ​បាន​គេ​រក​ឃើញ​ផង​ដែរ​រវាង​អត្រា​នៃ​ការ​សរសេរ​កូដ ភាព​ធន់​នឹង​សំឡេង​នៃ​ការ​សរសេរ​កូដ និង​ភាព​ស្មុគស្មាញ​នៃ​ឧបករណ៍​ឌិកូដ (មើល)។ ទិសដៅមួយទៀតនៃការស្រាវជ្រាវនៅក្នុងទ្រឹស្តីសរសេរកូដគឺទាក់ទងទៅនឹងការពិតដែលថាលទ្ធផលជាច្រើន (ឧទាហរណ៍ទ្រឹស្តីបទរបស់ Shannon និង bound (3)) មិនមែនជា "ស្ថាបនា" ប៉ុន្តែជាទ្រឹស្តីបទស្តីពីអត្ថិភាពនៃលំដាប់គ្មានកំណត់នៃកូដ (Kn) នៅក្នុងនេះ។ ដោយយកចិត្តទុកដាក់ កិច្ចខិតខំប្រឹងប្រែងកំពុងត្រូវបានធ្វើឡើង ដើម្បីបញ្ជាក់លទ្ធផលទាំងនេះនៅក្នុងថ្នាក់នៃលំដាប់នៃកូដ (Kn) សម្រាប់ kp មានម៉ាស៊ីន Turing ដែលទទួលស្គាល់ថាពាក្យដែលបំពាននៃប្រវែង l ជារបស់កំណត់ក្នុងពេលវេលាដែលមានល្បឿនយឺត។ លំដាប់នៃការលូតលាស់ដោយគោរពតាម l (ឧទាហរណ៍ llog l) ។ សំណង់ និងវិធីសាស្រ្តថ្មីមួយចំនួនសម្រាប់ការទាញយកព្រំដែនដែលបានបង្កើតឡើងនៅក្នុងទ្រឹស្តីសរសេរកូដបាននាំឱ្យមានការជឿនលឿនគួរឱ្យកត់សម្គាល់នៅក្នុងសំណួរដែលនៅ glance ដំបូងគឺនៅឆ្ងាយពីបញ្ហាប្រពៃណីនៃទ្រឹស្តីសរសេរកូដ។ នៅទីនេះយើងគួរតែចង្អុលបង្ហាញអំពីការប្រើប្រាស់លេខកូដអតិបរមាជាមួយនឹងការកែតម្រូវកំហុសមួយនៅក្នុងវិធីសាស្រ្តនៃរោគសញ្ញា - ល្អបំផុតនៃការសម្រេចបាននូវមុខងារនៃពិជគណិតនៃតក្កវិជ្ជាដោយសៀគ្វីទំនាក់ទំនង ការកែលម្អជាមូលដ្ឋាននៃព្រំដែនខាងលើសម្រាប់ដង់ស៊ីតេនៃការវេចខ្ចប់។ វិមាត្រឡើងវិញនៃលំហ Euclidean ដោយបាល់ស្មើគ្នា; លើការប្រើប្រាស់វិសមភាព (1) ក្នុងការប៉ាន់ប្រមាណភាពស្មុគស្មាញនៃការអនុវត្តដោយរូបមន្តនៃថ្នាក់មួយនៃមុខងារនៃពិជគណិតនៃតក្កវិជ្ជា។ គំនិតនិងលទ្ធផលនៃទ្រឹស្តីសរសេរកូដរកឃើញការអភិវឌ្ឍន៍បន្ថែមទៀតរបស់ពួកគេនៅក្នុងបញ្ហានៃការសំយោគសៀគ្វីកែតម្រូវដោយខ្លួនឯងនិងសៀគ្វីដែលអាចទុកចិត្តបានពីធាតុដែលមិនគួរឱ្យទុកចិត្ត។ ពន្លឺ៖ Shannon K. , ធ្វើការលើទ្រឹស្តីព័ត៌មាន និង cybernetics, trans ។ ពីភាសាអង់គ្លេស M. , 1963; Berlekamp E. , ទ្រឹស្តីសរសេរកូដពិជគណិត, trans ។ ពីភាសាអង់គ្លេស, M., 1971; Peterson, W., Weldon, E., Error-correcting codes, trans ។ ពីភាសាអង់គ្លេស, 2nd ed., M., 1976; សំណួរគណិតវិទ្យា និងគណិតវិទ្យាដាច់ពីគ្នានៃ Cybernetics, vol. 1, M., 1974, section 5; Bassalygo L. A. , Zyablov V. V. , Pinsker M. S. , "បញ្ហានៃការបញ្ជូនព័ត៌មាន", ឆ្នាំ 1977, លេខ 13, លេខ 3, ទំ។ ៥១៧; [នៅក្នុង] V. M. Sidelnikov, “Mat. Sat”, 1974, v. 95, c. 1, ទំ។ 148 58. V. I. Levenshtein ។

សព្វវចនាធិប្បាយគណិតវិទ្យា។ - អិមៈសព្វវចនាធិប្បាយសូវៀត។ I.M. Vinogradov ។ ១៩៧៧-១៩៨៥។  ALPHABETIC CODING  COEUCLIDAN SPACE សូមមើលផងដែរនៅក្នុងវចនានុក្រមផ្សេងទៀត៖  ការឌិកូដ - សូមមើលការសរសេរកូដ និងការឌិកូដ ... សព្វវចនាធិប្បាយគណិតវិទ្យា  ការសរសេរកូដសំឡេង - អត្ថបទនេះគួរតែត្រូវបាន wikified ។ សូម​ធ្វើ​ទ្រង់ទ្រាយ​វា​តាម​ច្បាប់​សម្រាប់​ការ​ធ្វើ​ទ្រង់ទ្រាយ​អត្ថបទ។ មូលដ្ឋាននៃការសរសេរកូដសំឡេងដោយប្រើកុំព្យូទ័រគឺជាដំណើរការនៃការបំលែងរំញ័រខ្យល់ទៅជារំញ័រអគ្គិសនី ... រូបភាពកូដវិគីភីឌា) ត្រូវបានអនុវត្តតាមនិយមន័យ។ ច្បាប់, សរុបនៃ k ryh naz ។ cipher K., ... ... សព្វវចនាធិប្បាយទស្សនវិជ្ជា  ការសរសេរកូដព័ត៌មាន - ការបង្កើតការឆ្លើយឆ្លងរវាងធាតុសារ និងសញ្ញា ដោយមានជំនួយពីធាតុទាំងនេះអាចត្រូវបានជួសជុល។ អនុញ្ញាតឱ្យ B ជាសំណុំនៃធាតុសារ A ជាអក្ខរក្រមដែលមាននិមិត្តសញ្ញា អនុញ្ញាតឱ្យលំដាប់កំណត់នៃនិមិត្តសញ្ញាត្រូវបានគេហៅថា។ នៅក្នុងពាក្យមួយនៅក្នុង ... ... សព្វវចនាធិប្បាយរូបវិទ្យា  OPTIMAL CODING - (នៅក្នុងចិត្តវិទ្យាវិស្វកម្ម) (eng. optimal coding) ការបង្កើតកូដដែលធានានូវល្បឿនអតិបរមា និងភាពជឿជាក់នៃការទទួល និងដំណើរការព័ត៌មានអំពីវត្ថុដែលគ្រប់គ្រងដោយប្រតិបត្តិករមនុស្ស។ (សូមមើល ការទទួលព័ត៌មាន ការឌិកូដ)។ បញ្ហារបស់ K. o. ... ... សព្វវចនាធិប្បាយចិត្តវិទ្យាធំ  ការឌិកូដ (ក្នុងចិត្តវិទ្យាវិស្វកម្ម) - (ការឌិកូដភាសាអង់គ្លេស) ប្រតិបត្តិការចុងក្រោយនៃដំណើរការទទួលព័ត៌មានដោយប្រតិបត្តិករមនុស្ស ដែលរួមមានការអ៊ិនគ្រីបឡើងវិញនូវប៉ារ៉ាម៉ែត្រកំណត់លក្ខណៈ ស្ថានភាពនៃវត្ថុវត្ថុបញ្ជា ហើយបកប្រែពួកវាទៅជារូបភាពនៃវត្ថុដែលបានគ្រប់គ្រង (សូមមើល សរសេរកូដ ... ... សព្វវចនាធិប្បាយចិត្តសាស្ត្រដ៏អស្ចារ្យ

 ការឌិកូដ - ការស្ដារសារដែលបានអ៊ិនកូដដោយសញ្ញាបញ្ជូន និងទទួល (សូមមើលការសរសេរកូដ) ... វចនានុក្រមសេដ្ឋកិច្ច និងគណិតវិទ្យា  ការសរសេរកូដ - ការសរសេរកូដ។ ដំណាក់កាលមួយនៃការបង្កើតការនិយាយ ខណៈពេលដែល "ការឌិកូដ" គឺជាការទទួល និងការបកស្រាយ ដំណើរការនៃការយល់ពីសារសុន្ទរកថាមួយ។ សូមមើល psycholinguistics... វចនានុក្រមថ្មីនៃពាក្យ វិធីសាស្រ្ត និងគោលគំនិត (ទ្រឹស្តី និងការអនុវត្តនៃការបង្រៀនភាសា)  CODING - (ការសរសេរកូដភាសាអង់គ្លេស)។ 1. ការបំប្លែងសញ្ញាពីទម្រង់ថាមពលមួយទៅទម្រង់មួយទៀត 2. ការបំប្លែងប្រព័ន្ធនៃសញ្ញា ឬសញ្ញាមួយទៅជាសញ្ញាផ្សេងទៀត ដែលជារឿយៗត្រូវបានគេហៅថា "ការបំប្លែងកូដ" "ការផ្លាស់ប្តូរកូដ" (សម្រាប់ការនិយាយ "ការបកប្រែ") ។ 3. K. (mnemonic) ... ... សព្វវចនាធិប្បាយចិត្តវិទ្យាធំ  ការឌិកូដ - អត្ថបទនេះគឺអំពីកូដនៅក្នុងទ្រឹស្ដីព័ត៌មាន សម្រាប់អត្ថន័យផ្សេងទៀតនៃពាក្យនេះ សូមមើល កូដ (អនាមិក)។ កូដគឺជាក្បួន (ក្បួនដោះស្រាយ) សម្រាប់ផ្គូផ្គងសារជាក់លាក់នីមួយៗទៅនឹងការរួមបញ្ចូលគ្នាដែលបានកំណត់យ៉ាងតឹងរ៉ឹងនៃនិមិត្តសញ្ញា (តួអក្សរ) (ឬសញ្ញា)។ ហៅផងដែរថាកូដ... ... ការអ៊ិនកូដល្អបំផុត សារដូចគ្នាអាចត្រូវបានអ៊ិនកូដតាមវិធីផ្សេងៗគ្នា។ លេខកូដដែលបានអ៊ិនកូដយ៉ាងត្រឹមត្រូវ គឺជាលេខកូដដែលចំណាយពេលអប្បបរមាត្រូវបានចំណាយលើការបញ្ជូនសារ។ ប្រសិនបើការបញ្ជូនតួអក្សរបឋមនីមួយៗ (0 ឬ 1) ចំណាយពេលដូចគ្នា នោះលេខកូដល្អបំផុតនឹងជាលេខកូដដែលនឹងមានប្រវែងអប្បបរមា។ ឧទាហរណ៍ 1. អនុញ្ញាតឱ្យមានអថេរចៃដន្យ X(x1,x2,x3,x4,x5,x6,x7,x8) ដែលមានរដ្ឋចំនួនប្រាំបីជាមួយនឹងការចែកចាយប្រូបាប៊ីលីតេ ដើម្បីអ៊ិនកូដអក្ខរក្រមនៃអក្សរប្រាំបីជាមួយនឹងលេខកូដគោលពីរឯកសណ្ឋាន យើងត្រូវការបី តួអក្សរ៖ នេះ 000, 001, 010, 011, 100, 101, 110, 111 ដើម្បីឆ្លើយថាតើកូដនេះល្អឬអត់ អ្នកត្រូវប្រៀបធៀបវាជាមួយនឹងតម្លៃដ៏ល្អប្រសើរ ពោលគឺកំណត់ entropy

ដោយបានកំណត់ភាពមិនលើសលប់ L ដោយរូបមន្ត L=1H/H0=12.75/3=0.084 យើងឃើញថាវាអាចកាត់បន្ថយប្រវែងកូដបាន 8.4%។ សំណួរកើតឡើង៖ តើវាអាចទៅរួចទេក្នុងការសរសេរកូដ ដែលជាមធ្យមនឹងមានតួអក្សរបឋមតិចជាងមុនក្នុងមួយអក្សរ។ មានលេខកូដបែបនេះ។ ទាំងនេះគឺជាលេខកូដ ShannonFano និង Huffman ។ គោលការណ៍នៃការបង្កើតកូដល្អបំផុត៖ 1. តួអក្សរបឋមនីមួយៗត្រូវតែផ្ទុកនូវចំនួនអតិបរមានៃព័ត៌មាន សម្រាប់ការនេះវាចាំបាច់ដែលតួអក្សរបឋម (0 និង 1) នៅក្នុងអត្ថបទដែលបានអ៊ិនកូដកើតឡើងជាមធ្យមជាញឹកញាប់ស្មើគ្នា។ Entropy ក្នុងករណីនេះនឹងមានអតិបរមា។ 2. វាចាំបាច់សម្រាប់អក្សរនៃអក្ខរក្រមបឋម ដែលមានប្រូបាបខ្ពស់ជាង ដែលត្រូវកំណត់ពាក្យកូដខ្លីជាងនៃអក្ខរក្រមបន្ទាប់បន្សំ។