Последний раз редактировалось B@R5uk 19.05.2020, 23:06, всего редактировалось 1 раз.
Моя самая последняя программа, с помощью которой я изучаю свойства групп и подгрупп. Состоит из пяти файлов. В Study_Groups_2.java находится функция main, в которой происходит вызов вычислительных и отображающих функций. Ключевые вычислительные функции находятся в GroupClass.java, который не влез в сообщение, и я его по-позже отправлю. В GroupsCollection.java находятся затравки таблиц умножения групп, по которым восстанавливаются полные таблицы, по которым, в свою очередь, изучается группа. Файлы SubgroupClass.java и SubgroupsRecordClass.java — это вспомогательные классы с искомой информацией о группе и подгруппах с функциями вывода. Последний файл тоже не влез в пост и будет отправлен позже.
public class Study_Groups_2 {
public static void main(String[] args) {
GroupClass group;
SubgroupsRecordClass sgRecord;
group = new GroupClass(GroupsCollection.getTableSeed(3));
if (21 >= group.getOrder()) {
group.displayMultiplicationTable();
group.displayConjugacyTable();
}
group.displayElementsProperties();
group.displayConjugacyClasses();
sgRecord = group.educeSubgroups();
//sgRecord.displayCycles();
sgRecord.displaySubgroups();
//sgRecord.displayInclusionTable();
sgRecord.subgroupsList[sgRecord.subgroupsList.length - 1].displayGenerators();
}
}
public class GroupsCollection {
private static int[][][] tableSeeds = new int[100][][];
static {
// Z_2 x Z_2 x Z_2
// Order 8
tableSeeds[0] = new int[][] {
{1, 0, 4, 5, 2, 3, 7, 6},
{2, 4, 0, 6, 1, 7, 3, 5},
{3, 5, 6, 0, 7, 1, 2, 4}
};
// Tetrahredal group A_4
// Order 12
tableSeeds[1] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 9, 8, 11, 10},
{2, 4, 5, 8, 9, 0, 7, 10, 11, 1, 6, 3}
};
// Z_7 # Z_3
// Order 21
tableSeeds[2] = new int[][] {
{1, 3, 4, 0, 7, 8, 9, 2, 18, 10, 6, 13, 14, 20, 15, 12, 19, 16, 5, 17, 11},
{2, 5, 6, 10, 11, 4, 12, 15, 16, 17, 8, 9, 18, 3, 1, 13, 7, 14, 20, 0, 19}
};
// Dihedral group Dih_3
// Order 6
tableSeeds[3] = new int[][] {
{1, 0, 3, 2, 5, 4},
{2, 4, 5, 1, 3, 0}
};
// Dihedral group Dih_4
// Order 8
tableSeeds[4] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5},
{2, 4, 5, 1, 7, 6, 0, 3}
};
// Dihedral group Dih_5
// Order 10
tableSeeds[5] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 9, 8},
{2, 4, 5, 1, 8, 9, 0, 3, 7, 6}
};
// Dihedral group Dih_6
// Order 12
tableSeeds[6] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 11, 10, 9, 8},
{2, 4, 5, 1, 8, 9, 0, 3, 10, 11, 7, 6}
};
// Dihedral group Dih_7
// Order 14
tableSeeds[7] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 10, 11, 8, 9, 13, 12},
{2, 4, 5, 1, 8, 9, 0, 3, 12, 13, 6, 7, 11, 10}
};
// Dihedral group Dih_8
// Order 16
tableSeeds[8] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 10, 11, 8, 9, 15, 14, 13, 12},
{2, 4, 5, 1, 8, 9, 0, 3, 12, 13, 6, 7, 14, 15, 11, 10}
};
// Dihedral group Dih_9
// Order 18
tableSeeds[9] = new int[][] {
{1, 0, 3, 2, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13, 17, 16},
{2, 4, 5, 1, 8, 9, 0, 3, 12, 13, 6, 7, 16, 17, 10, 11, 15, 14}
};
// Z_3 x Z_3 x Z_3
// Order 27
tableSeeds[10] = new int[][] {
{1, 4, 5, 6, 0, 10, 11, 12, 13, 14, 2, 3, 17, 18, 19, 20, 21, 7, 8, 9, 23, 24, 25, 15, 16, 26, 22},
{2, 5, 7, 8, 10, 12, 13, 0, 15, 16, 17, 18, 1, 20, 21, 3, 22, 4, 23, 24, 6, 25, 9, 11, 26, 14, 19},
{3, 6, 8, 9, 11, 13, 14, 15, 16, 0, 18, 19, 20, 21, 1, 22, 2, 23, 24, 4, 25, 5, 7, 26, 10, 12, 17}
};
// Klein group K_4
// Z_2 x Z_2
// Order 4
tableSeeds[12] = new int[][] {
{1, 0, 3, 2},
{2, 3, 0, 1}
};
// Z_3 x Z_3
// Order 9
tableSeeds[13] = new int[][] {
{1, 3, 4, 0, 6, 7, 2, 8, 5},
{2, 4, 5, 6, 7, 0, 8, 1, 3}
};
// Z_4 x Z_4
// Order 16
tableSeeds[14] = new int[][] {
{1, 3, 4, 6, 7, 8, 0, 10, 11, 12, 2, 13, 14, 5, 15, 9},
{2, 4, 5, 7, 8, 9, 10, 11, 12, 0, 13, 14, 1, 15, 3, 6}
};
// Z_5 x Z_5
// Order 25
tableSeeds[15] = new int[][] {
{1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 0, 15, 16, 17, 18, 2, 19, 20, 21, 5, 22, 23, 9, 24, 14},
{2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 0, 19, 20, 21, 1, 22, 23, 3, 24, 6, 10}
};
// Z_6 x Z_6
// Order 36
tableSeeds[16] = new int[][] {
{1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 0, 21, 22, 23, 24, 25, 2, 26, 27, 28, 29, 5, 30, 31, 32, 9, 33, 34, 14, 35, 20},
{2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 26, 27, 28, 29, 1, 30, 31, 32, 3, 33, 34, 6, 35, 10, 15}
};
// Z_7 x Z_7
// Order 49
tableSeeds[17] = new int[][] {
{1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 0, 28, 29, 30, 31, 32, 33, 2, 34, 35, 36, 37, 38, 5, 39, 40, 41, 42, 9, 43, 44, 45, 14, 46, 47, 20, 48, 27},
{2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 34, 35, 36, 37, 38, 1, 39, 40, 41, 42, 3, 43, 44, 45, 6, 46, 47, 10, 48, 15, 21}
};
// Z_8 x Z_8
// Order 64
tableSeeds[18] = new int[][] {
{1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 0, 36, 37, 38, 39, 40, 41, 42, 2, 43, 44, 45, 46, 47, 48, 5, 49, 50, 51, 52, 53, 9, 54, 55, 56, 57, 14, 58, 59, 60, 20, 61, 62, 27, 63, 35},
{2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 0, 43, 44, 45, 46, 47, 48, 1, 49, 50, 51, 52, 53, 3, 54, 55, 56, 57, 6, 58, 59, 60, 10, 61, 62, 15, 63, 21, 28}
};
// Z_9 x Z_9
// Order 81
tableSeeds[19] = new int[][] {
{1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 0, 45, 46, 47, 48, 49, 50, 51, 52, 2, 53, 54, 55, 56, 57, 58, 59, 5, 60, 61, 62, 63, 64, 65, 9, 66, 67, 68, 69, 70, 14, 71, 72, 73, 74, 20, 75, 76, 77, 27, 78, 79, 35, 80, 44},
{2, 4, 5, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 56, 57, 58, 59, 1, 60, 61, 62, 63, 64, 65, 3, 66, 67, 68, 69, 70, 6, 71, 72, 73, 74, 10, 75, 76, 77, 15, 78, 79, 21, 80, 28, 36}
};
// Z_8 x Z_2
// Order 16
// p^8 = q^2 = I; qp = pq
tableSeeds[20] = new int[][] {
{1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 0, 15, 2},
{2, 4, 0, 6, 1, 8, 3, 10, 5, 12, 7, 14, 9, 15, 11, 13}
};
// Z_8 # Z_2
// Order 16
// p^8 = q^2 = I; qp = p^3q
tableSeeds[21] = new int[][] {
{1, 3, 4, 9, 6, 7, 5, 10, 11, 13, 8, 2, 14, 15, 0, 12},
{2, 5, 0, 8, 9, 1, 12, 13, 3, 4, 14, 15, 6, 7, 10, 11}
};
// Z_8 # Z_2
// Order 16
// p^8 = q^2 = I; qp = p^5q
tableSeeds[22] = new int[][] {
{1, 3, 4, 6, 8, 7, 10, 12, 11, 13, 9, 14, 2, 15, 5, 0},
{2, 5, 0, 8, 9, 1, 12, 13, 3, 4, 14, 15, 6, 7, 10, 11}
};
// Pauli group
// Order 16
tableSeeds[23] = new int[][] {
{1, 0, 4, 5, 2, 3, 14, 12, 10, 11, 8, 9, 7, 15, 6, 13},
{2, 6, 0, 7, 13, 11, 1, 3, 12, 10, 9, 5, 8, 4, 15, 14},
{3, 8, 9, 0, 12, 13, 11, 14, 1, 2, 15, 6, 4, 5, 7, 10}
};
// Z_4 # Z_4
// Order 16
// p^4 = q^4 = I; qp = p^3q
tableSeeds[24] = new int[][] {
{1, 3, 4, 7, 8, 2, 10, 0, 5, 6, 12, 13, 9, 15, 11, 14},
{2, 5, 6, 8, 9, 10, 11, 4, 12, 13, 14, 0, 15, 7, 1, 3}
};
// Binary tetrahedral group 2T = SL(2,3)
// Order 24
tableSeeds[30] = new int[][] {
{1, 3, 4, 11, 7, 6, 8, 17, 12, 10, 13, 16, 23, 18, 9, 19, 22, 15, 20, 2, 14, 5, 0, 21},
{2, 5, 6, 9, 3, 10, 11, 14, 7, 15, 16, 17, 20, 8, 21, 22, 12, 23, 4, 13, 1, 19, 18, 0}
};
// Symmetric group S_4
// Order 24
// r^4 = s^2 = (sr)^3 = I
tableSeeds[31] = new int[][] {
{1, 3, 4, 6, 7, 8, 0, 15, 11, 12, 13, 20, 16, 17, 18, 2, 22, 23, 21, 14, 5, 19, 9, 10},
{2, 5, 0, 9, 10, 1, 13, 14, 15, 3, 4, 19, 20, 6, 7, 8, 21, 22, 23, 11, 12, 16, 17, 18}
};
// Quaternion group Q_8 = Dic_2
// Order 8
tableSeeds[32] = new int[][] {
{1, 3, 4, 6, 7, 2, 0, 5},
{2, 5, 3, 7, 1, 6, 4, 0}
};
// Dicyclic group Dic_3
// Order 12
tableSeeds[33] = new int[][] {
{1, 3, 4, 6, 7, 2, 9, 10, 5, 11, 8, 0},
{2, 5, 6, 8, 3, 9, 10, 1, 11, 7, 0, 4}
};
// Dicyclic group Dic_4
// Order 16
tableSeeds[34] = new int[][] {
{1, 3, 4, 7, 8, 2, 10, 6, 14, 5, 13, 12, 9, 15, 11, 0},
{2, 5, 6, 9, 7, 10, 11, 12, 3, 13, 14, 0, 15, 8, 1, 4}
};
// Dicyclic group Dic_5
// Order 20
tableSeeds[35] = new int[][] {
{1, 3, 4, 7, 8, 2, 11, 10, 13, 5, 6, 15, 16, 17, 9, 18, 14, 12, 19, 0},
{2, 5, 6, 9, 10, 11, 12, 14, 7, 15, 16, 17, 0, 3, 18, 13, 19, 1, 8, 4}
};
// Dicyclic group Dic_6
// Order 24
tableSeeds[36] = new int[][] {
{1, 3, 4, 7, 8, 2, 11, 13, 14, 5, 6, 16, 17, 10, 21, 9, 20, 19, 12, 15, 23, 18, 0, 22},
{2, 5, 6, 9, 10, 11, 12, 15, 13, 16, 17, 18, 0, 19, 7, 20, 21, 22, 1, 23, 14, 3, 4, 8}
};
// Dicyclic group Dic_7
// Order 28
tableSeeds[37] = new int[][] {
{1, 3, 4, 7, 8, 2, 11, 13, 14, 5, 6, 17, 18, 16, 20, 9, 10, 22, 23, 12, 24, 15, 26, 21, 19, 0, 27, 25},
{2, 5, 6, 9, 10, 11, 12, 15, 16, 17, 18, 19, 0, 21, 13, 22, 23, 24, 25, 1, 7, 26, 20, 27, 3, 4, 14, 8}
};
// Dicyclic group Dic_8
// Order 32
tableSeeds[38] = new int[][] {
{1, 3, 4, 7, 8, 2, 11, 13, 14, 5, 6, 17, 18, 22, 20, 9, 10, 23, 24, 12, 29, 15, 16, 27, 28, 19, 0, 31, 21, 25, 26, 30},
{2, 5, 6, 9, 10, 11, 12, 15, 16, 17, 18, 19, 0, 21, 22, 23, 24, 25, 26, 1, 13, 27, 28, 29, 30, 3, 4, 20, 31, 7, 8, 14}
};
// Dicyclic group Dic_9
// Order 36
tableSeeds[39] = new int[][] {
{1, 3, 4, 7, 8, 2, 11, 13, 14, 5, 6, 17, 18, 20, 21, 9, 10, 24, 25, 12, 23, 28, 15, 16, 30, 31, 19, 0, 32, 22, 34, 29, 26, 27, 35, 33},
{2, 5, 6, 9, 10, 11, 12, 15, 16, 17, 18, 19, 0, 22, 23, 24, 25, 26, 27, 1, 29, 20, 30, 31, 32, 33, 3, 4, 13, 34, 28, 35, 7, 8, 21, 14}
};
// A_4 x Z_2
// Order 24
// a^6 = (ad)^2 = I; a^3 = d^3
tableSeeds[50] = new int[][] {
{1, 3, 4, 7, 8, 9, 10, 14, 15, 16, 5, 17, 0, 18, 12, 21, 22, 23, 11, 2, 13, 19, 6, 20},
{2, 5, 6, 11, 12, 13, 7, 15, 18, 0, 19, 4, 20, 14, 22, 9, 8, 1, 10, 23, 21, 3, 17, 16}
};
// (Z_3 x Z_3) # Z_3
// Order 27
// b^3 = c^3 = (bc)^3 = (b^2c)^3 = I
tableSeeds[53] = new int[][] {
{1, 3, 4, 0, 7, 8, 9, 2, 13, 16, 14, 18, 15, 5, 24, 21, 6, 22, 20, 23, 11, 12, 25, 26, 10, 17, 19},
{2, 5, 6, 10, 11, 12, 0, 15, 16, 17, 18, 19, 1, 20, 21, 22, 23, 24, 3, 4, 25, 26, 7, 8, 9, 13, 14}
};
// Order 48
// b^3 = c^3 = (bc)^3 = (b^2c)^4 = I
tableSeeds[54] = new int[][] {
{1, 3, 4, 0, 7, 8, 9, 2, 13, 17, 14, 19, 15, 5, 21, 26, 22, 6, 28, 23, 24, 10, 39, 11, 35, 31, 12, 37, 32, 33, 34, 45, 18, 42, 40, 20, 43, 41, 44, 16, 30, 27, 29, 46, 47, 25, 36, 38},
{2, 5, 6, 10, 11, 12, 0, 16, 17, 18, 19, 20, 1, 25, 26, 27, 28, 29, 30, 3, 4, 34, 35, 36, 31, 37, 38, 39, 7, 8, 9, 42, 41, 40, 43, 44, 45, 13, 14, 15, 47, 46, 24, 21, 22, 23, 32, 33}
};
// Order 75
// b^3 = c^3 = (bc)^3 = (b^2c)^5 = I
tableSeeds[55] = new int[][] {
{1, 3, 4, 0, 7, 8, 9, 2, 13, 17, 14, 19, 15, 5, 21, 26, 22, 6, 28, 23, 24, 10, 31, 11, 37, 32, 12, 40, 33, 34, 35, 16, 43, 18, 48, 50, 44, 20, 52, 54, 45, 46, 47, 25, 56, 27, 61, 63, 29, 64, 30, 65, 57, 58, 59, 60, 36, 38, 72, 39, 69, 41, 70, 42, 71, 67, 68, 51, 74, 55, 73, 49, 53, 62, 66},
{2, 5, 6, 10, 11, 12, 0, 16, 17, 18, 19, 20, 1, 25, 26, 27, 28, 29, 30, 3, 4, 36, 37, 38, 39, 40, 41, 42, 7, 8, 9, 47, 48, 49, 50, 51, 52, 53, 54, 55, 13, 14, 15, 59, 61, 62, 63, 64, 60, 65, 66, 56, 21, 22, 23, 24, 35, 67, 69, 70, 32, 68, 71, 72, 31, 33, 34, 73, 44, 74, 43, 45, 46, 57, 58}
};
// Order 108
// b^3 = c^3 = (bc)^3 = (b^2c)^6 = I
tableSeeds[56] = new int[][] {
{1, 3, 4, 0, 7, 8, 9, 2, 13, 17, 14, 19, 15, 5, 21, 26, 22, 6, 28, 23, 24, 10, 31, 11, 37, 32, 12, 40, 33, 34, 35, 16, 43, 18, 49, 51, 44, 20, 53, 55, 45, 46, 47, 25, 57, 27, 64, 66, 58, 29, 68, 30, 70, 59, 60, 61, 62, 36, 87, 38, 78, 39, 80, 82, 41, 83, 42, 85, 73, 74, 75, 76, 77, 50, 99, 52, 92, 94, 54, 95, 56, 96, 98, 88, 89, 90, 91, 48, 65, 105, 67, 101, 71, 102, 72, 104, 100, 103, 63, 69, 81, 86, 106, 107, 79, 84, 93, 97},
{2, 5, 6, 10, 11, 12, 0, 16, 17, 18, 19, 20, 1, 25, 26, 27, 28, 29, 30, 3, 4, 36, 37, 38, 39, 40, 41, 42, 7, 8, 9, 48, 49, 50, 51, 52, 53, 54, 55, 56, 13, 14, 15, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 21, 22, 23, 24, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 31, 32, 33, 34, 35, 90, 92, 93, 94, 95, 91, 96, 97, 98, 99, 43, 44, 45, 46, 47, 100, 101, 102, 58, 103, 104, 105, 57, 59, 60, 61, 62, 106, 107, 73, 74, 75, 76, 88, 89}
};
// Symmetric group S_5
// Order 120
// r^5 = s^2 = (sr)^4 = (sr^2sr^3)^2 = I
tableSeeds[60] = new int[][] {
{1, 3, 4, 6, 7, 8, 11, 12, 13, 14, 15, 0, 19, 20, 21, 22, 23, 24, 25, 2, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 26, 5, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 9, 10, 66, 67, 68, 69, 70, 71, 72, 73, 87, 74, 75, 76, 77, 78, 79, 80, 81, 82, 16, 17, 18, 30, 88, 89, 90, 91, 92, 93, 94, 83, 65, 95, 96, 97, 98, 99, 100, 101, 102, 103, 27, 28, 29, 107, 108, 109, 110, 111, 112, 85, 61, 104, 86, 64, 113, 114, 60, 117, 115, 41, 43, 44, 45, 118, 119, 84, 42, 116, 105, 106, 62, 63},
{2, 5, 0, 9, 10, 1, 16, 17, 18, 3, 4, 26, 27, 28, 29, 30, 6, 7, 8, 25, 41, 42, 43, 44, 45, 19, 11, 12, 13, 14, 15, 40, 49, 60, 52, 61, 62, 63, 64, 65, 31, 20, 21, 22, 23, 24, 58, 59, 71, 32, 83, 73, 34, 84, 76, 85, 86, 87, 46, 47, 33, 35, 36, 37, 38, 39, 80, 81, 82, 103, 92, 48, 104, 51, 105, 98, 54, 93, 106, 88, 66, 67, 68, 50, 53, 55, 56, 57, 79, 101, 102, 111, 70, 77, 107, 116, 113, 114, 75, 112, 117, 89, 90, 69, 72, 74, 78, 94, 109, 108, 115, 91, 99, 96, 97, 110, 95, 100, 119, 118}
};
}
public static int[][] getTableSeed(int arg) {
return tableSeeds[arg];
}
}
public class SubgroupClass implements Comparable<SubgroupClass> {
public int[] elements;
public int rank, index;
public String id;
public int[][] generators, generatorsTypes, generatorsByType;
public SubgroupClass[] conjugates, parents;
public SubgroupClass(int[] arg1) {
elements = arg1;
}
public int getOrder() {
return elements.length;
}
public boolean include(SubgroupClass arg) {
int k, l, element, anotherElement;
k = 1;
l = 1;
while (elements.length > k && arg.elements.length > l) {
element = elements[k];
anotherElement = arg.elements[l];
if (element > anotherElement) {
return false;
}
if (element == anotherElement) {
++l;
}
++k;
}
if (arg.elements.length == l) {
return true;
}
return false;
}
public int compareTo(SubgroupClass arg) {
int k;
if (elements.length > arg.elements.length) {
return 1;
}
if (elements.length < arg.elements.length) {
return -1;
}
for (k = 0; elements.length > k; ++k) {
if (elements[k] > arg.elements[k]) {
return 1;
}
if (elements[k] < arg.elements[k]) {
return -1;
}
}
return 0;
}
public void display() {
int k, l, m;
if (null == id) {
System.out.print("id: none");
} else {
System.out.print("id: \"" + id + "\"");
}
System.out.print("; order: ");
System.out.print(elements.length);
System.out.print("; rank: ");
System.out.print(rank);
System.out.print("; index: ");
System.out.println(index);
System.out.print(" elements: ");
System.out.print(elements[0]);
for (k = 1; elements.length > k; ++k) {
System.out.print(", ");
System.out.print(elements[k]);
}
System.out.println();
System.out.print(" generators");
if (null != generators) {
System.out.print(" (");
System.out.print(generators.length);
System.out.print("): ");
if (1 == rank) {
System.out.print(generators[0][0]);
for (k = 1; generators.length > k; ++k) {
System.out.print(", ");
System.out.print(generators[k][0]);
}
} else {
System.out.print("{");
System.out.print(generators[0][0]);
for (l = 1; rank > l; ++l) {
System.out.print("; ");
System.out.print(generators[0][l]);
}
m = 1;
for (k = 1; generators.length > k; ++k) {
System.out.print("}, {");
System.out.print(generators[k][0]);
for (l = 1; rank > l; ++l) {
System.out.print("; ");
System.out.print(generators[k][l]);
}
++m;
if (42 == m && 50 < generators.length) {
break;
}
}
System.out.print("}");
if (42 == m && 50 < generators.length) {
System.out.print(", ... (");
System.out.print(generators.length - m);
System.out.print(" more)");
}
}
System.out.println();
} else {
System.out.println(": none");
}
System.out.print(" conjugates (");
System.out.print(conjugates.length);
System.out.print("): \"");
System.out.print(conjugates[0].id);
if (this == conjugates[0]) {
for (k = 1; conjugates.length > k; ++k) {
System.out.print("\", \"");
System.out.print(conjugates[k].id);
}
}
System.out.println("\"");
System.out.print(" parents: ");
if (0 == parents.length) {
System.out.println("none");
} else {
System.out.print("\"");
System.out.print(parents[0].id);
for (k = 1; parents.length > k; ++k) {
System.out.print("\", \"");
System.out.print(parents[k].id);
}
System.out.println("\"");
}
System.out.println();
}
public void displayGenerators() {
int k, l, m;
if (1 < rank) {
System.out.println();
System.out.print("Subgroup \"");
System.out.print(id);
System.out.println("\" generators by type:");
for (k = 0; generatorsTypes.length > k; ++k) {
System.out.print(" Type ");
System.out.print(generatorsTypes[k][0]);
for (l = 1; rank > l; ++l) {
System.out.print("-");
System.out.print(generatorsTypes[k][l]);
}
System.out.print(" (");
System.out.print(generatorsByType[k].length);
System.out.print("):");
for (l = 0; generatorsByType[k].length > l; ++l) {
if (0 == l % 8) {
if (0 == l) {
System.out.print("\n {");
} else {
System.out.print("},\n {");
}
} else {
System.out.print("}, {");
}
System.out.print(generators[generatorsByType[k][l]][0]);
for (m = 1; rank > m; ++m) {
System.out.print("; ");
System.out.print(generators[generatorsByType[k][l]][m]);
}
}
System.out.println("}");
}
System.out.println();
}
}
}
|