Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

ПРИЛОЖЕНИЕ Алгоритм вывода нильпотентных матриц

Читайте также:
  1. VIII. Долина создания душ: понимание матрицы
  2. VIII. Долина создания душ: понимание матрицы
  3. X. Жизнь в матрице: уместные реакции на иллюзорные стимулы
  4. X. Жизнь в матрице: уместные реакции на иллюзорные стимулы
  5. XVI. Просветленность — это судьба: двойная жизнь волшебников матрицы
  6. XVI. Просветленность — это судьба: двойная жизнь волшебников матрицы
  7. XVIII. Стать богом: жизнь за пределами матрицы

private void calc() {

int n = Integer.parseInt(etPow.getText().toString());

if (n <= 1) {

Toast.makeText(this, "Степень должна быть больше 1", Toast.LENGTH_SHORT).show();

return;

}

if (n >= 6) {

Toast.makeText(this, "Степень должна быть меньше 6", Toast.LENGTH_SHORT).show();

return;

}

ArrayList<ArrayList<Matrix> > groups = new ArrayList<ArrayList<Matrix> >();

for (int i = 0; i < 3; i++) {

groups.add(new ArrayList<Matrix>());

}

ArrayList<Matrix> g0 = groups.get(0), g1 = groups.get(1), g2 = groups.get(2);

 

Matrix emptyMatrix = new Matrix(n, n);

 

for (int number = 0; number < (1 << (n * n)); number++) {

Matrix m = new Matrix(n, n);

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

int k = i * n + j;

if ((number & (1 << k))!= 0) {

m.set(i, j, 1);

} else {

m.set(i, j, 0);

}

}

}

if (m.pow(2).equals(emptyMatrix)) {

g0.add(m);

} else if (m.pow(3).equals(emptyMatrix)) {

g1.add(m);

} else {

g2.add(m);

}

}

 

StringBuilder sb = new StringBuilder();

 

for (int gIdx = 0; gIdx < groups.size(); gIdx++) {

switch (gIdx) {

case 0:

sb.append("A^2 = [0]");

break;

case 1:

sb.append("A^3 = [0]");

break;

case 2:

sb.append("A^3!= [0]");

break;

}

sb.append(", количество матриц: " + groups.get(gIdx).size() + "\n\n");

 

ArrayList<Matrix> gr = groups.get(gIdx);

for (Matrix m: gr) {

ArrayList<Matrix> pows = new ArrayList<Matrix>();

for (int k = 0; k < gIdx + 1; k++) {

pows.add(m.pow (k + 1));

}

for (int i = 0; i < n; i++) {

for (int k = 0; k < gIdx + 1; k++) {

Matrix mp = pows.get(k);

for (int j = 0; j < n; j++) {

sb.append(mp.get(i, j));

}

sb.append(" ");

}

sb.append("\n");

}

sb.append("\n");

}

}

 

etResult.setText(sb); }


Дата добавления: 2015-08-26; просмотров: 44 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Постановка задачи| Загальні.

mybiblioteka.su - 2015-2024 год. (0.005 сек.)