Форум программистов, компьютерный форум CyberForum.ru

Покрытие множеств - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ книга http://www.cyberforum.ru/cpp-beginners/thread87470.html
какие книги вы посоветуете для быстрого изучения языка си???
C++ Перевести число из десятичной в двоичную 1. Составить программу согласно заданию. 2. Протестировать программу одним из известных методов тестирования (Black Box або White Box) Примітка: 1.Данные вводяться с клавы. 2.Указывать результат роботи программи. Завдання: http://www.cyberforum.ru/cpp-beginners/thread87433.html
C++ Статистика:Метод наименьших квадратов
Вот такая задача мне попалась недавно на с++... Во время исследований получили экспериментальную зависимость вяскости глицерина в сантипуазах и температуры в градусах Цельсия: температура --- вяскость -42 ----- 6.71*10^6 -20 ----- 1.34*10^5 0 ------ 1.21*10^4 20 ----- 1.49*10^3 30 ----- 6.26*10^2 Методом...
Работа с файломи C++
Здравствуйте. Нужна программа которая бы делала следующее. У нас есть неопределенное количество файлов. Пользователь с помощью стандартного ввода пишет путь к файлу и производиться считывание строки из файла. Строкой внутри этого файла является путь к следующему файлу. После считывания строки производим такую же операцию, только пользователь уже ничего не вводит, а путь к файлу копируется из...
C++ Вектор и итераторы http://www.cyberforum.ru/cpp-beginners/thread87418.html
Всем привет. Помогите дописать курсовую. Нодо сделать вывод студентов с вектора + сортировку объектов в векторе по любому значению. Вот что у меня получилось: /////////////////////////////////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include <fstream> #include <iostream> #include <conio.h> #include <vector> #include <stdio.h>...
C++ написать функцию, возвращающую массив Всем здравствуйте, Вопрос такой: нужно написать функцию, которая возвращает массив из двух чисел, и я не хочу использовать std::pair. Следующий вариант работает вроде: int* return_array(){ int arr; arr = 0; подробнее

Показать сообщение отдельно
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
28.01.2010, 07:30     Покрытие множеств
Веталька, тогда еще проще - НЕ проверяешь, а просто печатаешь набор
множеств и элементы в него попавшие
M = (1L<<N);
for (long Q=1; Q<M; Q++) {
// И печатаешь
}

Добавлено через 35 минут
Вопрос понял.
Вот просплюсь, позавтракую, погуляю с собачкой по морозцу (кстати, зовут его "Байтик"),
и чего-нибудь придумаю...

Добавлено через 10 часов 9 минут
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
#include <stdio.h>
#include <string.h>
 
static double a[7]={ 1, 3, 2, 2, 1, 2, 3 }; //vesa
static long  A[7] = { 0xA2, 0x14A, 0x33, 0x124, 0x51, 0xD, 0xB5 };
static int N = 7;  // kol-vo podmnogestv
static int n = 9;  // kol-vo elementov polnogo mnogestva
 
OutX(long X) // Вывод состава покрытия
{  int i; double s;
  s = 0;
  for(i=0; i<N; i++)
    if (X&(1L<<i)) {
      printf(" %c", 'A' + i);
      s += a[i];
    }
  printf(" (s=%.2f) : ", s);
}
/*********/
long Union(long X)  // Объединение всех множеств покрытия
{  long P = 0; int i;
  for(i=0; i<N; i++)
    if (X&(1L<<i)) P |= A[i];
  return(P);
}
/*********/
OutE(long P) // Вывод покрытого множества
{  int i;
  for(i=n-1; i>=0; i--)
    if (P&(1L<<i)) printf("1");
    else           printf("0");
}
/*********/
void main()
{ long X, M, P;
  M = (1L<<N);
  // Любой набор множеств A[i] называем по традиции "покрытием",
  // хотя они могут покрывать только часть всего множества - P
  for(X=0; X<M; X++) { // Перебор всех возможных комбинаций подмножеств
    OutX(X); // Вывод состава покрытия
    P = Union(X);  // Объединение всех множеств покрытия
    OutE(P); // Вывод покрытого множества
    printf("\n");
  }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru