អ្វីដែលអ្នកវិទ្យាសាស្ត្រកុំព្យូទ័រគ្រប់រូបគួរដឹងអំពីនព្វន្ធចំណុចអណ្តែត (1991) [pdf]
មតិយោបល់
Mewayz Team
Editorial Team
អន្ទាក់ភាពជាក់លាក់ដែលមើលមិនឃើញ៖ ហេតុអ្វីបានជាអ្នកសរសេរកម្មវិធីគ្រប់រូបត្រូវការ PDF ឆ្នាំ ១៩៩១
នៅក្នុងពិភពឡូជីខលនៃវិទ្យាសាស្ត្រកុំព្យូទ័រយ៉ាងច្បាស់លាស់ ឯកសារមួយចំនួនមានផលប៉ះពាល់ជាមូលដ្ឋានយូរអង្វែងនៃក្រដាសឆ្នាំ 1991 របស់ David Goldberg "អ្វីដែលអ្នកវិទ្យាសាស្ត្រកុំព្យូទ័រគ្រប់រូបគួរដឹងអំពី Floating-Point Arithmetic" ។ ជាងបីទសវត្សរ៍ក្រោយមក ចំណងជើងរបស់វានៅតែជាការហៅឱ្យច្បាស់លាស់ ការព្រមាន និងជាបំណែកនៃប្រាជ្ញាដ៏សំខាន់។ សម្រាប់នរណាម្នាក់ដែលសរសេរកូដដែលទាក់ទងនឹងចំនួនពិត - ពីការក្លែងធ្វើបែបវិទ្យាសាស្ត្រ និងប្រព័ន្ធហិរញ្ញវត្ថុ រហូតដល់ម៉ាស៊ីនហ្គេម និងការវិភាគទិន្នន័យ - ការមិនអើពើនឹងមេរៀនរបស់វាគឺការបរាជ័យដ៏ស្មុគស្មាញ មានតម្លៃថ្លៃ និងជាញឹកញាប់គួរឱ្យភ្ញាក់ផ្អើល។ នៅក្នុងយុគសម័យដែលប្រតិបត្តិការអាជីវកម្មត្រូវបានដំណើរការកាន់តែខ្លាំងឡើងដោយកម្មវិធីស្មុគស្មាញ និងទំនាក់ទំនងគ្នាទៅវិញទៅមក ការយល់ដឹងអំពីមូលដ្ឋានគ្រឹះនៃការគណនាលេខមិនមែនជាការសិក្សាទេ។ វាជាតម្រូវការប្រតិបត្តិការ។ នេះជាការពិតជាពិសេសនៅពេលប្រើប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មម៉ូឌុលដូចជា Mewayz ដែលភាពត្រឹមត្រូវនៃទិន្នន័យនៅទូទាំងម៉ូឌុល - ពីការវិភាគរហូតដល់ការចេញវិក្កយបត្រដោយស្វ័យប្រវត្តិ - អាស្រ័យលើការគណនាដែលអាចព្យាករណ៍បាន និងអាចទុកចិត្តបាន។
បញ្ហាស្នូល៖ អ្នកមិនអាចតំណាងឱ្យ Infinity ក្នុង Finite Bits
បញ្ហាជាមូលដ្ឋានគឺសាមញ្ញ ប៉ុន្តែមានអត្ថន័យជ្រាលជ្រៅ។ កុំព្យូទ័ររបស់យើងមានចំនួនកំណត់នៃអង្គចងចាំ ប៉ុន្តែជារឿយៗយើងត្រូវធ្វើការជាមួយនឹងចំនួនពិតជាបន្តបន្ទាប់ដែលគ្មានកំណត់ (ដូចជា π ឬ 0.1)។ នព្វន្ធចំណុចអណ្តែតគឺជាការសម្របសម្រួលស្តង់ដារ ដែលជាប្រព័ន្ធដ៏ឆ្លាតវៃសម្រាប់តំណាងឱ្យជួរដ៏ធំទូលាយនៃចំនួនជាមួយនឹងភាពជាក់លាក់មានកំណត់។ ទោះជាយ៉ាងណាក៏ដោយ ការសម្របសម្រួលនេះមានន័យថាលេខភាគច្រើនគឺប្រហាក់ប្រហែល មិនមែនត្រូវបានរក្សាទុកយ៉ាងពិតប្រាកដនោះទេ។ ក្រដាសរបស់ Goldberg ពន្យល់យ៉ាងល្អិតល្អន់អំពីស្តង់ដារ IEEE 754 ដែលនាំមកនូវភាពស៊ីសង្វាក់គ្នាដែលត្រូវការច្រើនចំពោះភាពវឹកវរនេះ។ គាត់រៀបរាប់លម្អិតអំពីរបៀបដែលលេខត្រូវបានអ៊ិនកូដទៅជាសញ្ញា និទស្សន្ត និងប្រភាគប៊ីត បង្កើតទេសភាពដែលអាចទស្សន៍ទាយបាន ប៉ុន្តែចម្លែកនៃតម្លៃដែលអាចតំណាងបាន អាកប្បកិរិយាបង្គត់ និងធាតុពិសេសដូចជា NaN (Not a Number) និងគ្មានដែនកំណត់។ សម្រាប់អ្នកអភិវឌ្ឍន៍ដែលបង្កើតគំរូហិរញ្ញវត្ថុនៅលើ Mewayz កំហុសបង្គត់ដែលហាក់ដូចជាមីក្រូទស្សន៍អាចបណ្តាលឱ្យមានភាពខុសគ្នាយ៉ាងសំខាន់នៅក្នុងរបាយការណ៍ ឬប្រតិបត្តិការ ដែលធ្វើឱ្យខូចទំនុកចិត្តលើប្រព័ន្ធទាំងមូល។
អាកប្បកិរិយាគួរឱ្យភ្ញាក់ផ្អើល និងមហន្តរាយមហន្តរាយ
ក្រដាសនេះមានភាពល្បីល្បាញក្នុងការបង្ហាញពីភាពមិនច្បាស់លាស់ដែលបំបែកការសន្មតគណិតវិទ្យាមូលដ្ឋាន។ ជាឧទាហរណ៍ ដោយសារតែការបង្គត់ ការបន្ថែមចំណុចអណ្តែតគឺមិនមែនជាការពាក់ព័ន្ធទេ។ `(a + b) + c` មិនតែងតែស្មើ `a + (b + c)` ។ នេះអាចនាំឱ្យមានលទ្ធផលមិនកំណត់នៅក្នុងការគណនាស្របគ្នា។ ការដកលេខជិតស្មើអាចនាំទៅរកការលុបចោលមហន្តរាយ ដែលលេខសំខាន់ៗបាត់ទៅវិញ ដោយបន្សល់ទុកនូវកំហុសក្នុងការបង្គត់។ ប្រហែលជាមេរៀនដ៏ល្បីបំផុតគឺ តម្រូវការមិនត្រូវប្រៀបធៀបលេខអណ្តែតទឹកសម្រាប់សមភាពពិតប្រាកដ (`==`) ប៉ុន្តែផ្ទុយទៅវិញពិនិត្យមើលថាតើភាពខុសគ្នារបស់ពួកគេស្ថិតនៅក្នុងការអត់ធ្មត់តិចតួចឬអត់។ ទាំងនេះមិនមែនគ្រាន់តែជាទ្រឹស្ដីប៉ុណ្ណោះទេ។ ពួកគេបានបង្កឱ្យមានគ្រោះមហន្តរាយនៅក្នុងពិភពលោក ចាប់តាំងពីការផ្ទុះនៃគ្រាប់រ៉ុក្កែត Ariane 5 រហូតដល់ភាពមិនត្រឹមត្រូវនៃប្រព័ន្ធមីស៊ីល Patriot ដំបូង។ នៅក្នុងបរិបទអាជីវកម្ម កំហុសបែបនេះនៅក្នុងការគណនាសារពើភ័ណ្ឌ ក្បួនដោះស្រាយតម្លៃ ឬរង្វាស់នៃការអនុវត្តអាចនាំឱ្យខូចទិន្នន័យដោយស្ងៀមស្ងាត់ ធ្វើឱ្យវេទិការឹងមាំដូចជា Mewayz មានសារៈសំខាន់សម្រាប់ពង្រឹងសុពលភាពទិន្នន័យ និងការត្រួតពិនិត្យភាពស៊ីសង្វាក់គ្នានៅលើម៉ូឌុល។
msgstr "ការច្របាច់ចំនួនពិតជាច្រើនឥតកំណត់ទៅជាចំនួនប៊ីតកំណត់តម្រូវឱ្យមានតំណាងប្រហាក់ប្រហែល។"
គន្លឹះសំខាន់ៗសម្រាប់អ្នកអភិវឌ្ឍន៍ទំនើប
ក្រដាសរបស់ Goldberg មិនត្រឹមតែផ្តល់ការព្រមានប៉ុណ្ណោះទេ ប៉ុន្តែជាការណែនាំជាក់ស្តែង។ ការដកយកស្នូលគឺដើម្បីបណ្តុះ "ស្មារតីជាលេខ" ដែលជាការយល់ដឹងថេរថាលេខអណ្តែតទឹកគឺជាការប៉ាន់ស្មាន។ ផ្នត់គំនិតនេះគួរតែជូនដំណឹងអំពីជម្រើសពីការជ្រើសរើសរចនាសម្ព័ន្ធទិន្នន័យរហូតដល់ការរចនាក្បួនដោះស្រាយ។ ការងាររបស់គាត់បានគូសបញ្ជាក់អំពីមូលហេតុដែលការប្រើ 'ទ្វេ' (64 ប៊ីត) ស្ទើរតែតែងតែល្អជាងសម្រាប់ 'អណ្តែត' (32 ប៊ីត) សម្រាប់ការងារដែលមានភាពជាក់លាក់-សំខាន់ ហើយហេតុអ្វីបានជាក្បួនដោះស្រាយមួយចំនួនមានស្ថេរភាពជាលេខ ខណៈពេលដែលកម្មវិធីផ្សេងទៀតមិនមាន។ នៅពេលរចនា ឬការរួមបញ្ចូលម៉ូឌុលនៅក្នុងបរិយាកាស Mewayz មិនថាវាជាកម្មវិធីព្យាករណ៍ការរៀនម៉ាស៊ីន ឬកម្មវិធីកំណត់ពេលវេលាធនធានទេ ស្មារតីនេះធានាថាប្រតិបត្តិការលេខជាមូលដ្ឋានត្រូវបានដោះស្រាយដោយការគោរពដែលពួកគេទាមទារ ការពារភាពមិនប្រក្រតីដែលពិបាកតាមដានរកមូលហេតុដើមរបស់វា។
អ្នកសរសេរកម្មវិធីគ្រប់រូបគួរតែស្គាល់គោលគំនិតសំខាន់ៗទាំងនេះពីក្រដាស៖
- កំហុសក្នុងការបង្គត់៖ ភាពមិនត្រឹមត្រូវដែលជៀសមិនរួចពីការបញ្ចូលលេខទៅក្នុងតម្លៃតំណាងដែលនៅជិតបំផុត។
- លេខឆ្មាំ៖ ខ្ទង់បន្ថែមដែលប្រើក្នុងការគណនាកម្រិតមធ្យម ដើម្បីកាត់បន្ថយកំហុសក្នុងការបង្គត់។
- ស្តង់ដារ IEEE 754៖ ប្លង់មេជាសកលសម្រាប់ការគណនាបណ្តែតទឹក ការកំណត់ទម្រង់ ច្បាប់បង្គត់ និងករណីលើកលែង។
- NaN និង Infinity៖ តម្លៃពិសេសដែលអនុញ្ញាតឱ្យប្រតិបត្តិការផ្សព្វផ្សាយកំហុសដោយរលូនជាជាងការគាំង។
- ស្ថេរភាពជាលេខ៖ ទ្រព្យសម្បត្តិនៃក្បួនដោះស្រាយដើម្បីគ្រប់គ្រងការពង្រីកកំហុសលើប្រតិបត្តិការជាច្រើន។
ឯកសាររស់នៅសម្រាប់ពិភពឌីជីថល
ខណៈពេលដែលត្រូវបានសរសេរក្នុងឆ្នាំ 1991 ភាពពាក់ព័ន្ធនៃក្រដាសនេះបានកើនឡើងតែប៉ុណ្ណោះ។ គោលការណ៍នៃ IEEE 754 គាំទ្ររាល់ CPU, GPU និងភាសាសរសេរកម្មវិធីទំនើបៗ។ នៅពេលដែលយើងរុញចូលទៅក្នុងព្រំដែនដូចជា AI ការវិភាគទិន្នន័យដ៏ធំ និងការក្លែងធ្វើប្រព័ន្ធស្មុគស្មាញ ភាពជាក់លាក់នៃការគណនារបស់យើងកាន់តែមានសារៈសំខាន់។ សម្រាប់ក្រុមដែលប្រើប្រាស់ប្រព័ន្ធប្រតិបត្តិការម៉ូឌុលដូចជា Mewayz ដើម្បីសម្រួលតក្កវិជ្ជាអាជីវកម្មរបស់ពួកគេ ការបញ្ចូលភាពម៉ត់ចត់ជាលេខនេះទៅក្នុងម៉ូឌុលផ្ទាល់ខ្លួនរបស់ពួកគេ គឺជាការអនុវត្តល្អបំផុតដែលការពារបញ្ហាមួយចំនួននៅកម្រិតមូលដ្ឋានបំផុត។ ស្នាដៃរបស់ Goldberg គឺច្រើនជាងក្រដាស។ វាជាផ្នែកអចិន្ត្រៃយ៍នៃមូលដ្ឋានគ្រឹះនៃវិស្វកម្មកម្មវិធីដែលអាចទុកចិត្តបាន។ ដើម្បីមិនអើពើគឺការសាងសង់លើខ្សាច់ដែលប្រថុយនឹងភាពសុចរិតនៃរចនាសម្ព័ន្ធឌីជីថលទាំងមូល មិនថាវាជាស្គ្រីបសាមញ្ញ ឬប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មថ្នាក់សហគ្រាសទេ។
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →