Таблицу истинности для функции F = (A ∨ B) ∨ (¬ A ∧ С),
расписав в таблице каждое действие отдельно.
193
199
Ответы на вопрос:
Using system; using system.linq; using system.text; namespace test1 { class program { static string file_name = "prresh.txt"; static bool handfree = true; //определяет вручную ли вводятся данные или рандомом static void main() { console.writeline("введите размеры матрицы (строки x столбцы)"); int rows = convert.toint32(console.; int columns = convert.toint32(console.; var m = initmatrix(rows, columns, handfree); int reply; do { console.writeline(); console.writeline("выбирите метод решения: "); console.writeline("1. критерий сэвиджа"); console.writeline("2. критерий гермейера"); console.writeline("3. выход"); reply = convert.toint32(console.; switch (reply) { case 1: { savagecriterion(m); break; } case 2: { var q = new double[m.getlength(1)]; if (handfree) { var r = new random(datetime.now.millisecond); for (var j = 0; j < q.length; j++) { q[j] = r.nextdouble(); } } else { console.writeline("введите вероятности"); for (var j = 0; j < q.length; j++) { q[j] = convert.todouble(console.; } } germeiercriterion(m, q); break; } default: { reply = -1; break; } } } while (reply > 0); console.readkey(); } static double[,] initmatrix(int rows, int columns, bool handfree = false) { var m = new double[rows, columns]; var sb = new stringbuilder(); sb.appendline("матрица [" + rows + "x" + columns + "] : "); if (handfree) { var random = new random(datetime.now.millisecond); for (var i = 0; i < rows; i++) { for (var j = 0; j < columns; j++) { m[i, j] = random.nextdouble() * random.next(-50, 50); sb.append(m[i, j] + " "); } sb.appendline(); } } else { for (var i = 0; i < rows; i++) { for (var j = 0; j < columns; j++) { console.write("m[" + i + ", " + j + "] = "); m[i, j] = convert.todouble(console.; sb.append(m[i, j] + " "); } console.writeline(); sb.appendline(); } } outputtoconsoleandlog(sb.; return m; } static double savagecriterion(double[,] m) { outputtoconsoleandlog("критерий сэвиджа."); outputtoconsoleandlog("наибольшее значение каждого столбца."); var max = new double[m.getlength(1)]; for (var j = 0; j < max.length; j++) { max[j] = m[0, j]; for (var i = 1; i < m.getlength(0); i++) { if (max[j] < m[i, j]) max[j] = m[i, j]; } outputtoconsoleandlog("max[" + j + " столбца] = " + max[j]); } outputtoconsoleandlog("вычтем из наибольшего значения столбца, каждое значение столбца."); outputtoconsoleandlog("сформируем новую матрицу из полученных значений."); var sb = new stringbuilder(); for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { m[i, j] = max[j] - m[i, j]; sb.append(m[i, j] + " "); } sb.appendline(); } outputtoconsoleandlog(sb.; outputtoconsoleandlog("наибольшее значение каждой строки."); max = new double[m.getlength(0)]; for (var i = 0; i < m.getlength(0); i++) { max[i] = m[i, 0]; for (var j = 0; j < m.getlength(1); j++) { if (max[i] < m[i, j]) max[i] = m[i, j]; } outputtoconsoleandlog("max[" + i + " строки] = " + max[i]); } outputtoconsoleandlog("ответ: " + max.; return max.last(); } static double germeiercriterion(double[,] m, double[] q) { outputtoconsoleandlog("критерий гермейера."); outputtoconsoleandlog("для решения необходимы сведенья о вероятности принятия каждого решения."); outputtoconsoleandlog("вероятности принятия решения: "); for (var j = 0; j < q.length; j++) { outputtoconsoleandlog("q[" + j + "] = " + q[j]); } var max = m[0, 0]; for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { if (max < m[i, j]) max = m[i, j]; } } outputtoconsoleandlog("наибольшее значение в матрице = " + max); max += 1; outputtoconsoleandlog("необходимо из каждого элемента матрицы вычесть " + max); outputtoconsoleandlog("полученная матрица: "); var sb = new stringbuilder(); for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { m[i, j] -= max; sb.append(m[i, j] + " "); m[i, j] *= q[j]; } sb.appendline(); } outputtoconsoleandlog(sb.; outputtoconsoleandlog("умножаем каждый элемент матрицы на соответствующую вероятность."); outputtoconsoleandlog("выбираем наименьший результат каждой строки."); var min = new double[m.getlength(0)]; for (var i = 0; i < m.getlength(0); i++) { m[i, 0] *= q[0]; min[i] = m[i, 0]; for (var j = 1; j < m.getlength(1); j++) { m[i, j] *= q[j]; if (min[i] > m[i, j]) min[i] = m[i, j]; } outputtoconsoleandlog("min[" + i + " строки] = " + min[i]); } outputtoconsoleandlog("ответ: " + min.; return min.max(); } static void outputtoconsoleandlog(string text) { console.writeline(text); using (var file = new system.io.streamwriter(file_name, true)) { file.writeline(text); } } } }
Популярно: Информатика
-
tomatik4703.08.2020 10:37
-
bd71113.09.2021 11:41
-
romka101413.08.2022 11:19
-
АминаКурбанова1715.03.2020 22:02
-
ksysharaz21.09.2021 22:35
-
ksyusa4116.08.2021 22:39
-
милка32812.10.2020 05:50
-
fkireeva01.07.2022 15:35
-
Полинаed06.03.2023 07:29
-
cystan9811.05.2020 23:06