Advertisement
Arden

Untitled

Jan 16th, 2013
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.64 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Codes_Maker
  8. {
  9.     public class FiniteFieldsMath
  10.     {
  11.         /// <summary>Сложение по модулю p.
  12.         /// </summary>
  13.         public static int Addition(int p, int x, int y)
  14.         {
  15.             return (x + y) % p;
  16.         }
  17.         /// <summary>Умножение по модулю p.
  18.         /// </summary>
  19.         public static  int Multiplication(int p, int x, int y)
  20.         {
  21.             int result = 0;
  22.             result = (x * y) % p;
  23.             if (result < 0) result = result + p;
  24.             return result;
  25.         }
  26.         /// <summary>Вычитание по модулю p.
  27.         /// </summary>
  28.         public static int Subtraction(int p, int x, int y)
  29.         {
  30.             int result = 0;
  31.             result = (x - y) % p;
  32.             if (result < 0) result = result + p;
  33.             return result;
  34.         }
  35.         /// <summary>Деление по модулю p.
  36.         /// </summary>
  37.         public static int Division(int p, int x, int y)
  38.         {
  39.             return Multiplication(p, x, Inversion(p, y));
  40.         }
  41.         /// <summary>Нахождение обратного элемента по модулю p.
  42.         /// </summary>
  43.         public static int Inversion(int p, int x)
  44.         {
  45.             int temp = 0, result = 0;
  46.             for (int i = 1; i < p - 1; i++)
  47.             {
  48.                 temp = Multiplication(p, x, i);
  49.                 if (temp == 1) result = i;
  50.             }
  51.             return result;
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement