Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 34
1

Написать программу по методу Брауна-Робинсона

23.11.2013, 14:29. Показов 5121. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите кто знает метод Брауна-Робинсона, нужно по нему написать программу на C#, а если нет, то на крайний случай, любой другой метод какой знаете, за ранее спасибо...
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2013, 14:29
Ответы с готовыми решениями:

Программа для алгоритма Брауна-Робинсона
Добрый день, с матлабом практически незнаком, но для написания диссертации, нужна программка,...

Метод фиктивного розыгрыша Брауна-Робинсона
Всем доброго времени суток! Программка сама по себе простенькая, но что то не правильно...

Написать программу па методу Гаусса
Кто может написать программу па методе Гаусса

Написать программу по методу Хорд
Помогите написать программу по методу Хорд Е-точность Н1-шаг (равен 0.1) Ну и само условие:...

1
138 / 132 / 57
Регистрация: 31.01.2012
Сообщений: 435
23.11.2013, 22:43 2
Лучший ответ Сообщение было отмечено Tomalex как решение

Решение

Tomalex, метод принимает два параметра:
матрицу игры и точность нахождения оценки игры

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
private static void Braun(double[,] matrix, double eps)
        {
            int m = matrix.GetLength(0);
            int n = matrix.GetLength(1);
            List<double> B = new List<double>();
            List<double> cB = new List<double>();
            List<double> A = new List<double>();
            List<double> cA = new List<double>();
            for (int i = 0; i < n; i++) { B.Add(0.0); cB.Add(0.0); }
            for (int j = 0; j < m; j++) { A.Add(0.0); cA.Add(0.0); }
            Random rand = new Random();
            int f = rand.Next(m);            
            int min = 0;
            double Vn = 0.0, Vv = 0.0, Vs = 0.0, Vold = 0.0; 
            int count=0;
            int width=6;
            Console.Write("┌─────┬───┬"); for (int i = 0; i < B.Count; i++) Console.Write("──────┬"); Console.Write("───┬"); for (int i = 0; i < A.Count + 2; i++) Console.Write("──────┬"); Console.Write("──────┐");
            Console.WriteLine();
            Console.Write("│K".PadRight(width) + "│" + "i  │"); for (int i = 0; i < B.Count; i++) Console.Write("B:"+i.ToString().PadRight(width-2) + "│");
            Console.Write("j  │"); for (int i = 0; i < A.Count; i++) Console.Write("A:"+i.ToString().PadRight(width-2) + "│");
            Console.Write("Vn".PadRight(width)+"│"+"Vv".PadRight(width)+"│"+"Vs".PadRight(width)+"│");
            Console.WriteLine();
            while (true)
            {                
                Console.Write("├─────┼───┼"); for (int i = 0; i < B.Count; i++) Console.Write("──────┼"); Console.Write("───┼"); for (int i = 0; i < A.Count + 2; i++) Console.Write("──────┼"); Console.Write("──────┤");
                Console.WriteLine();
                count++;
                cA[f]++;
                for (int i = 0; i < B.Count; i++) B[i] += matrix[f, i];
                min = B.IndexOf(B.Min());
                cB[min]++;
                for (int j = 0; j < A.Count; j++) A[j] += matrix[j, min];
                Console.Write("│" + count.ToString().PadRight(width-1) + "│" + (f + 1).ToString().PadRight(3) + "│");
                for (int i = 0; i < B.Count; i++) Console.Write(Math.Round(B[i], 3).ToString().PadRight(width) + "│");
                Console.Write((min + 1).ToString().PadRight(3) + "│");
                for (int j = 0; j < A.Count; j++) Console.Write(Math.Round(A[j], 3).ToString().PadRight(width) + "│");
                Console.Write(Math.Round(Vn,3).ToString().PadRight(width)+"│"+Math.Round(Vv,3).ToString().PadRight(width)+"│"+Math.Round(Vs,3).ToString().PadRight(width)+"│");
                Console.WriteLine();
                Vn = B.Min() / count;
                Vv = A.Max() / count;
                Vs = (Vv + Vn)/2;                
                if ((Math.Abs(Vs - Vv)) < eps) break;
                //if ((count%20)==0) Console.ReadLine();
                Vold = Vs;
                f = A.IndexOf(A.Max());
            }            
            Console.Write("└─────┴───┴"); for (int i = 0; i < B.Count; i++) Console.Write("──────┴"); Console.Write("───┴"); for (int i = 0; i < A.Count + 2; i++) Console.Write("──────┴"); Console.Write("──────┘");
            Console.WriteLine();
            Console.WriteLine("V*= " + Math.Round(Vs, 3));
            double[] p = new double[A.Count];
            for (int i = 0; i < p.Length; i++) p[i] = cA[i] / count;
            Console.Write("p*= ( "); for (int i = 0; i < p.Length; i++) Console.Write(Math.Round(p[i],3)+"; "); Console.WriteLine(")");
            double[] q = new double[B.Count];
            for (int i = 0; i < q.Length; i++) q[i] = cB[i] / count;
            Console.Write("q*= ( "); for (int i = 0; i < q.Length; i++) Console.Write(Math.Round(q[i],3)+"; "); Console.WriteLine(")");            
        }
+проект. по хорошему допилите вывод в файл, а не на консоль и все будет ок
Вложения
Тип файла: zip BraunRobinson.zip (32.5 Кб, 305 просмотров)
5
23.11.2013, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2013, 22:43
Помогаю со студенческими работами здесь

Написать программу по методу хорд
Помогите написать программу.С точностью e=0.0001 найти корень уравнения, локализованный на(2;4)...

Не могу написать программу по методу шифрования цезаря
Товарищи помогите пожалуйста...ситуация очень проблемная в институте ...надо написать программу в...

Написать программу вычисления определенного интеграла по методу прямоугольников
Люди добрые, может кто подсказать? \int_{\pi}^{0}x\cdot \sin x dx Задание: Написать программу...

Написать программу решения по методу Гаусса системы линейных уравнений
Написать программу решения по методу Гаусса системы линейных уравнений a11x1.......a1nxn=b1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru