Advertisement
Guest User

Untitled

a guest
Apr 24th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.04 KB | None | 0 0
  1. package curse;
  2.  
  3. import java.util.HashSet;
  4. import java.util.Iterator;
  5.  
  6. public class MainClass {
  7.     static int mod = R.mod; //характеристика поля
  8.     static int n = M.n; //размер матриц
  9.  
  10.     public static void main(String[] args){
  11.         R q = new R(2);
  12.         int sqrt2 = q.r();
  13.        
  14.         int[][] g1 = new int[n][n];
  15.         for (int i = 0; i < n; i++)
  16.             for (int j = 0; j < n; j++){
  17.                 g1[i][j] = 0;
  18.             }
  19.         g1[0][1]=sqrt2; g1[4][0]=mod-sqrt2; g1[2][6]=mod-1; g1[3][5]=1;
  20.         M G1 = new M(g1);
  21.         System.out.println("g_1");
  22.         G1.print();
  23.        
  24.         int[][] g2 = new int[n][n];
  25.         for (int i = 0; i < n; i++)
  26.             for (int j = 0; j < n; j++){
  27.                 g2[i][j] = 0;
  28.             }
  29.         g2[0][2]=sqrt2; g2[5][0]=mod-sqrt2; g2[1][6]=1; g2[3][4]=mod-1;
  30.         M G2 = new M(g2);
  31.         System.out.println("\ng_2");
  32.         G2.print();
  33.        
  34.         int[][] g3 = new int[n][n];
  35.         for (int i = 0; i < n; i++)
  36.             for (int j = 0; j < n; j++){
  37.                 g3[i][j] = 0;
  38.             }
  39.         g3[0][6]=sqrt2; g3[3][0]=mod-sqrt2; g3[5][1]=1; g3[4][2]=mod-1;
  40.         M G3 = new M(g3);
  41.         System.out.println("\ng_-3");
  42.         G3.print();
  43.        
  44.         int[][] g12 = new int[n][n];
  45.         for (int i = 0; i < n; i++)
  46.             for (int j = 0; j < n; j++){
  47.                 g12[i][j] = 0;
  48.             }
  49.         g12[1][2]=sqrt2; g12[5][4]=mod-sqrt2;
  50.         M G12 = new M(g12);
  51.         System.out.println("\ng_1,-2");
  52.         G12.print();
  53.        
  54.         int[][] g31 = new int[n][n];
  55.         for (int i = 0; i < n; i++)
  56.             for (int j = 0; j < n; j++){
  57.                 g31[i][j] = 0;
  58.             }
  59.         g31[3][1]=1; g31[4][6]=mod-1;
  60.         M G31 = new M(g31);
  61.         System.out.println("\ng_3,-1");
  62.         G31.print();
  63.        
  64.         int[][] g32 = new int[n][n];
  65.         for (int i = 0; i < n; i++)
  66.             for (int j = 0; j < n; j++){
  67.                 g32[i][j] = 0;
  68.             }
  69.         g32[3][2]=1; g32[5][6]=mod-1;
  70.         M G32 = new M(g32);
  71.         System.out.println("\ng_3,-2");
  72.         G32.print();
  73.        
  74.         HashSet<M> Nalg = new HashSet<M>();//подалгебра n
  75.         int i1, i2, i3, i4, i5, i6;
  76.         for (i1 = 0; i1 < mod; i1++)
  77.             for (i2 = 0; i2 < mod; i2++)
  78.                 for (i3 = 0; i3 < mod; i3++)
  79.                     for (i4 = 0; i4 < mod; i4++)
  80.                         for (i5 = 0; i5 < mod; i5++)
  81.                             for (i6 = 0; i6 < mod; i6++){
  82.                                 Nalg.add(G1.scal(i1).plus(G2.scal(i2).plus(G3.scal(i3).plus(G12.scal(i4).plus(G31.scal(i5).plus(G32.scal(i6)))))));
  83.                             }
  84.        
  85.         HashSet<M> Ualg = new HashSet<M>();//множество U
  86.         Iterator<M> Nitr = Nalg.iterator();
  87.         while (Nitr.hasNext()) {
  88.             Ualg.add(Nitr.next().exp());
  89.         }
  90.  
  91.         System.out.println(Ualg.size());
  92.        
  93.         int vol = 0;   
  94.         for(int i = 1; i < mod; i++){//проходим по всем фунциям для одноэлементных множеств
  95.             Iterator<M> Uitr = Ualg.iterator();
  96.             HashSet<M> OG1 = new HashSet<>(); //орбита для g1
  97.             HashSet<M> OG2 = new HashSet<>();
  98.             HashSet<M> OG3 = new HashSet<>();
  99.             HashSet<M> OG12 = new HashSet<>();
  100.             HashSet<M> OG31 = new HashSet<>();
  101.             HashSet<M> OG32 = new HashSet<>();
  102.             HashSet<M> OG1and12 = new HashSet<>();
  103.             HashSet<M> OG1and2 = new HashSet<>();
  104.             HashSet<M> OG1and32 = new HashSet<>();
  105.             HashSet<M> OG31and2 = new HashSet<>();
  106.             HashSet<M> OG31and12 = new HashSet<>();
  107.             HashSet<M> OG3and12 = new HashSet<>();
  108.             while (Uitr.hasNext()) {//проходим по U
  109.                 M tcd = Uitr.next();
  110.                 M RD1 = tcd.Ad(G1.scal(i));            
  111.                 M RD2 = tcd.Ad(G2.scal(i));            
  112.                 M RD3 = tcd.Ad(G3.scal(i));            
  113.                 M RD12 = tcd.Ad(G12.scal(i));              
  114.                 M RD31 = tcd.Ad(G31.scal(i));
  115.                 M RD32 = tcd.Ad(G32.scal(i));
  116.                 OG1.add(RD1);
  117.                 OG2.add(RD2);
  118.                 OG3.add(RD3);
  119.                 OG12.add(RD12);
  120.                 OG31.add(RD31);
  121.                 OG32.add(RD32);
  122.                 OG1and12.add(RD1.plus(RD12));
  123.                 OG1and2.add(RD1.plus(RD2));
  124.                 OG1and32.add(RD1.plus(RD32));
  125.                 OG31and2.add(RD2.plus(RD2));
  126.                 OG31and12.add(RD31.plus(RD12));
  127.                 OG3and12.add(RD3.plus(RD12));
  128.             }
  129.             vol += OG1.size();
  130.             vol += OG2.size();
  131.             vol += OG3.size();
  132.             vol += OG12.size();
  133.             vol += OG31.size();
  134.             vol += OG32.size();
  135.             vol += OG1and12.size();
  136.             vol += OG1and2.size();
  137.             vol += OG1and32.size();
  138.             vol += OG31and2.size();
  139.             vol += OG31and12.size();
  140.             vol += OG3and12.size();*/
  141.         }
  142.        
  143.         System.out.println(vol);
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement