Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Розділ 2 Переведення чисел.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.09 Mб
Скачать

2.9. Переведення чисел з десяткової системи числення в сзк з використанням властивостей залишків

Переведення чисел з позиційної системи в СЗК у найпростішому випадку виконують шляхом ділення числа Х на модулі . Найменші додатні залишки від такого ділення й утворять представлення числа Х в СЗК. Однак на практиці такий алгоритм переведення часто виявляється малоефективним через велике число операцій ділення.

Інші алгоритми переведення чисел з позиційних систем у СЗК базуються на використанні наступних властивостей чисел, представлених залишками (далі означає ).

.

У справедливості цих властивостей легко переконатися безпосередньою перевіркою.

Нехай для заданого набору модулів і позиційної десяткової системи числення відомі представлення в залишках будь-якого степеня основи 10 (тобто, будь-якої ваги в позиційній системі)

а також кожної десяткової цифри

.

Тоді компоненти числа Х в СЗК можна представити у вигляді

.

Таким чином, для знаходження залишку числа за модулем необхідно скласти попарні добутки залишків цифр і ваг . При цьому всі додавання і множення виконуються за модулем .

Розглянутий алгоритм переведення знаходить застосування й в іншому варіанті, що використовує не тільки вищенаведені властивості залишків, але і наступну властивість

.

У цьому випадку для обчислення досить мати представлення в залишках або тільки степенях основи або тільки цифр тобто

.

Приклад 2.28. Перевести десяткове число Х=839 у СЗК з модулями .

Для степенів основи і заданих цифр позиційної десяткової системи маємо

Скориставшись поліноміальною формою запису числа, дістанемо

.

Таким чином, .

Рекомендується виконати домашнє завдання 13 і 14.

На лістингу 16 наведено Mathcad-програму, яка реалізовує розглянутий метод.

Зауважимо, що розглянутий алгоритм можна удосконалити розглянувши зображення в СЗК тільки десяткових цифр, які входять в запис десяткового числа, та числа 10 (основи числення). Маючи набори цих зображення, легко обчислити зображення самого десяткового числа скориставшись схемою Горнера обчислення значення полінома, виконуючи усі дії множення і додавання в СЗК.

Як приклад, розглянемо переведення десяткового числа з попереднього прикладу.

У даному випадку, алгоритм який базується на схемі Горнера має вигляд:

у десятковій системі ;

у системі залишкових класів

.

Як бачимо, одержаний результат співпадає з попереднім результатом.

2.10. Метод ортогональних базисів переведення чисел із сзк

в десяткову систему числення

Для переведення чисел із СЗК у позиційну десяткову систему використовують алгоритми, що забезпечують однозначність переведення.

Зокрема, до таких методів відноситься метод ортогональних базисів, який базується на використанні констант , які називаються ортогональними базисами, представлення яких у СЗК при заданому наборі модулів має вид .

Перехід від числа Х, заданого в СЗК, до десяткового числа Z у цьому випадку може бути здійснений за формулою

,

де – цифри числа Х, .

Для фіксованого набору модулів відповідні представлення констант можуть бути обчислені заздалегідь за формулою

.

Тут – так звана вага ортогонального базису, яка знаходиться з умови

.

Для подальшого використання цю умову зручно записати у вигляді

.

Приклад 2.29. Переведемо в десяткову систему число Х=(2,4,6,3), представлене в СЗК за модулями .

Розв’язання. У цьому випадку . Знайдемо далі ваги ортогональних базисів. Для модуля маємо

.

Аналогічно для модулів одержимо:

.

.

.

Таким чином:

Отже, .

На лістингу 17 наведено результати реалізації описаних алгоритмів в системі Mathcad