Определить значение мажоритарной функции для заданного булева вектора - C#
Формулировка задачи:
Задание: Определить значение мажоритарной функции для заданного булева вектора. Мажоритарная функция принимает значение 1 на тех наборах, в которых больше 1 чем 0.
Вобщем по коду: вывел булеву функцию, определил ее десятичное значение, далее поразрядно смотрю в каких местах единицы и ставлю флажки. Но условие неверное: . Подскажите как исправить)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace мажоритарная_функция { class Program { static void Main(string[] args) { //ввод булева вектора int b, x, m1, flag1=0, flag0=0; uint a, m; string s; Console.WriteLine("Введите булев вектор"); s = Console.ReadLine(); b = s.Length; a=0; m1=0; for (int i = 0; i < b; i++) { if (s[b - 1 - i] == '1') { m1 = (1 << (i)); m = (uint)m1; a = a | m; } } Console.WriteLine("Длина вектора {0}", b); Console.WriteLine("Число в 10-ой сс {0}", a); //проверка на мажоритарную for (int p = 0; p < b; p++) { if ((1 << (p)==1) && (a != 0)) { flag1++; } else flag0++; } if (flag1 > flag0) Console.WriteLine("Это мажоритарная функция"); else Console.WriteLine("Не мажоритарная"); } } }
Решение задачи: «Определить значение мажоритарной функции для заданного булева вектора»
textual
Листинг программы
if (((1 << p) & a) != 0) {...}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д