Определить значение мажоритарной функции для заданного булева вектора - C#

Узнай цену своей работы

Формулировка задачи:

Задание: Определить значение мажоритарной функции для заданного булева вектора. Мажоритарная функция принимает значение 1 на тех наборах, в которых больше 1 чем 0. Вобщем по коду: вывел булеву функцию, определил ее десятичное значение, далее поразрядно смотрю в каких местах единицы и ставлю флажки. Но условие неверное: . Подскажите как исправить)
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace мажоритарная_функция
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. //ввод булева вектора
  13. int b, x, m1, flag1=0, flag0=0; uint a, m; string s;
  14. Console.WriteLine("Введите булев вектор");
  15. s = Console.ReadLine();
  16. b = s.Length;
  17. a=0;
  18. m1=0;
  19. for (int i = 0; i < b; i++) {
  20. if (s[b - 1 - i] == '1') {
  21. m1 = (1 << (i));
  22. m = (uint)m1;
  23. a = a | m;
  24. }
  25. }
  26. Console.WriteLine("Длина вектора {0}", b);
  27. Console.WriteLine("Число в 10-ой сс {0}", a);
  28. //проверка на мажоритарную
  29. for (int p = 0; p < b; p++) {
  30. if ((1 << (p)==1) && (a != 0)) {
  31. flag1++;
  32. }
  33. else
  34. flag0++;
  35. }
  36. if (flag1 > flag0)
  37. Console.WriteLine("Это мажоритарная функция");
  38. else
  39. Console.WriteLine("Не мажоритарная");
  40. }
  41. }
  42. }

Решение задачи: «Определить значение мажоритарной функции для заданного булева вектора»

textual
Листинг программы
  1. if (((1 << p) & a) != 0) {...}

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы