Определить значение мажоритарной функции для заданного булева вектора - 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) {...}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы