Главная страница
Навигация по странице:

  • Теоретический часть. Известно, что

  • Операции по модулю Вышеупомянутый бинарный оператор назван оператором по модулю

  • Соотношение уравнения деления и оператора по модулю

  • Аддитивная инверсия.

  • В модульной арифметике целое число может или не может иметь мультипликативную инверсию. Целое число и его мультипликативная инверсия сравнимы с 1 по модулю

  • 4- Занятия.

  • Задачи. Вычислите следушие операции.

  • Прак_03. Модульная арифметика. Операция по инверсии


    Скачать 183 Kb.
    НазваниеМодульная арифметика. Операция по инверсии
    Дата04.10.2020
    Размер183 Kb.
    Формат файлаdocx
    Имя файлаПрак_03.docx
    ТипПрактическая работа
    #140844

    Практическая работа №3.

    ТЕМА: МОДУЛЬНАЯ АРИФМЕТИКА. ОПЕРАЦИЯ ПО ИНВЕРСИИ.

    Цель работы: Операция по модулу. Найдите мультипликативные инверсии b в Zn  и создайте программа для алгоритм на программированных язиках.

    Теоретический часть. Известно, что

    два входяший и два выходяшие значение.

    Нам интиресует только остаток , другими словами если Мы делим а на остаётся остаток . Это называется бинарной операции и обозначается по модулю . Второй входяший делитель называются модул. Выходяший значения называются остаток. Қуйидаги расмда модул арифметикаси ва қолдиқли бўлиш тенгламаси келтирилган.

    Операции по модулю

    Вышеупомянутый бинарный оператор назван оператором по модулю и обозначается как mod. Второй вход ( n ) назван модулем. Вывод r назван вычетомРисунок 2.9 показывает отношение деления по сравнению с оператором по модулю.



    Соотношение уравнения деления и оператора по модулю

    Как показано на рис. 2.9, оператор по модулю ( mod ) выбирает целое число ( a ) из множества Z и положительный модуль ( n ). Оператор определяет неотрицательный остаток ( r ).

    Мы можем сказать, что

    Мы уже упоминали, что два входа для трех бинарных операторов в сравнении по модулю могут использовать данные из Z или Zn. Следующие свойства позволяют нам сначала отображать два входа к Zn (если они прибывают от Z ) перед выполнением этих трех бинарных операторов  .

    Заинтересованные читатели могут найти доказательства для этих свойств в приложении Q.



    Рис. 2.14. Свойства оператора mod







    Аддитивная инверсия. В Zn два числа a и b аддитивно инверсны друг другу, если  . Например,
    В Zn аддитивная инверсия числу a может быть вычислена как b = n – a. Например, аддитивная инверсия 4 в Z10равна 10 – 4 = 6.

    В модульной арифметике каждое целое число имеет аддитивную инверсию. Сумма целого числа и его аддитивной инверсии сравнима с 0 по модулю n.

    Мультипликативная инверсия. В Zn два числа a и b мультипликативно инверсны друг другу, если .

    Например, если модуль равен 10, то мультипликативная инверсия 3 есть 7. Другими словами, мы имеем  .

    В модульной арифметике целое число может или не может иметь мультипликативную инверсию. Целое число и его мультипликативная инверсия сравнимы с по модулю n .

    Может быть доказано, что a имеет мультипликативную инверсию в Zn, если только НОД(n, a) = 1. В этом случае говорят, что a и n взаимно простые.

    Расширенный алгоритм Евклида находит мультипликативные инверсии в Zn , когда даны и b и НОД (n, b) = 1 . Мультипликативная инверсия — это значение , отображенное в Zn .



    1-занятия. Найти результат следующих операций:

    a. 27 mod 5

    b. 36 mod 12

    c. –18 mod 14

    d. –7 mod 10

    Решение. Мы ищем вычет r. Мы можем разделить a на n и найти q и r. Далее можно игнорировать q и сохранить r.

    а. Разделим 27 на 5 - результат: r = 2. Это означает, что 27 mod 5 = 2.

    б. Разделим 36 на 12 — результат: r = 0. Это означает, что 36 mod 12 = 0.

    в. Разделим (–18) на 14 — результат: r = –4. Однако мы должны прибавить модуль (14), чтобы сделать остаток неотрицательным. Мы имеем r = –4 + 14 = 10. Это означает, что –18 mod 14 = 10.

    г. Разделим (–7) на 10 — результат: r = –7. После добавления модуля –7 мы имеем r = 3. Это означает, что –7 mod 10 = 3.

    2- занятия. Выполните следующие операции (поступающие от Zn ):

    a. Сложение 17 и 27 в Z14

    b. Вычитание 43 из 12 в Z13

    c. Умножение 123 на -10 в Z19

    Решение. Ниже показаны два шага для каждой операции:

    (17 + 27) mod 14 -> (44) mod 14 = 2

    (12 – 43) mod 13 -> (–31) mod 13 = 8

    ((123) x (–10)) mod 19 -> (–1230) mod 19 = 5

    3- занятия. Найдите все взаимно обратные пары по сложению в Z10.

    Решение. Даны шесть пар аддитивных инверсий — (0, 0), (1, 9), (2, 8), (3, 7), (4, 6) и (5, 5). В этом списке 0 — инверсия самому себе; так же и 5. Обратите внимание: аддитивные инверсии обратны друг другу; если 4 — аддитивная инверсия 6, тогда 6 — также аддитивная инверсия числу 4

    4- Занятия. Найти все мультипликативные обратные пары в Z11.

    Решение. Мы имеем следующие пары: (1, 1), (2, 6), (3, 4), (5, 9), (7, 8) и (10, 10). При переходе от Z10 к Z11число пар увеличивается. При Z11 НОД (11, a) = 1 (взаимно простые) для всех значений a, кроме 0. Это означает, что все целые числа от 1 до 10 имеют мультипликативные инверсии.

    5-Занятия. Реализуем алгоритм инверсия по модулу

    Включаем программа Visual studio 2013 создаем файл по имени “тескари” на язиках c#



    В главный окно набираем следившем кодом.

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;
    namespace Teskari_sonni_topish

    {

    class Program

    {

    static void Main(string[] args)

    {

    // Multipliktiv teskari sonni topish. Muallif Umidjon.15.03.2017

    nishon:

    Console.WriteLine("Songa multiplikativ teskari sonni topish");

    int r1, r2, r, t1, t2, t, q, a, b,n;

    Console.Write("sonni kiriting b= ");

    b = int.Parse(Console.ReadLine());

    Console.Write("modulni kiriting n= ");

    n = int.Parse(Console.ReadLine());

    ////////////////////////////////////////////////////

    r1 = n; r2 = b; //initalizatsiya

    t1 = 0; t2 = 1;

    while (r2 > 0)

    {

    /////////////////////////////////////////

    q = r1 / r2; // r ni aniqlash

    r = r1 - q * r2;

    r1 = r2;

    r2 = r;

    /////////////////////////////////////////

    t = t1 - t2 * q;

    t1 = t2; t2 = t;

    }

    // tublikka tekshirish

    if (r1 == 1)

    {

    if (t1 >= 0)

    {

    a = t1;

    }

    else

    {

    a = n + t1;

    }

    Console.WriteLine("Chekli " + n + " maydonda " + b + " soniga teskari son " + a + " ga teng.");

    }

    else

    {

    Console.WriteLine("BERILGAN SONGA BERILGAN MODUL BO'YICHA TESKARI SON YO`Q");

    }

    Console.WriteLine();

    goto nishon;

    Console.ReadKey();

    }

    }

    }
    Задачи.

    1. Вычислите следушие операции.

    1. 22 mod7 5. 140mod10

    2. -78mod13 6. 0 mod15

    3. 138 mod26 7. 27 mod26

    4. 2785 mod256 8. 250mod256

    1. Найдите всех мултипликативных инверсия на целих чисели по модулу 20, 15, 15 и 19.

    2. Найдите всех аддитивный инверсия на целих чисели по модулу 20, 15, 15 и 19.

    3. С помошю расширенный алгоритм Евклида найдите инверсия на целих чисели 7, 8, 13, 14,24 и 33 по модулу 39.

    4. Создайте программа для алгоритм найти мултипликативных инверсия на числах на c++ или любое программный языках.


    написать администратору сайта