Форум программистов, компьютерный форум, киберфорум
Наши страницы

Реализация комбинаторики - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сложение 2-х целых двоичных чисел, хранящихся в массивах A и B http://www.cyberforum.ru/cpp-beginners/thread632267.html
Задачка из Кормена. Результат записать в массив С. Написал, что-то вроде: int main() { int i,q=0; for(i=n-1;i>=0;i--) { c = a^b^q; q = (q+a+b)>>1; }
C++ задача непонятная Объясните, пожалуйста, что нужно сделать, а то формулу не могу вывести, т.е. что нужно делать и с какой последовательностью. Было бы здорово если объяснение с примером ) http://www.cyberforum.ru/cpp-beginners/thread632260.html
Библиотека/утилита для извления flv (флэш) контента из html страницы C++
Есть ли подобные вещи для извлечения url на flv контент из html кода страницы? Сразу скажу, что это не популярный видеохостинг типа ютуба. Но при помощи браузера фаерфокса+плагина download helper я...
Какой книгой лучше пользоваться при изучении visual c++ 2008 C++
Решил изучить visual c++ 2008. Какой книгой лучше пользоваться при изучении(полый "0" в с++)?
C++ Программирование пользовательского элемента управления http://www.cyberforum.ru/cpp-beginners/thread632210.html
Я собираюсь сделать грубый графический редактор для моей же игры. Для этого мне надо сделать новый элемент управления в качестве облегченного варианта PictureBox, с одним пикселем. У него будет...
C++ Чтение свойтв (тех данных) файла Здравствуйте. Подскажите пожалуйста, как считывать все тех данные файлов? (они же свойства файла) Под техданными имею ввиду: размеры картинки, время создания/изменения, разрешение видеофайла,... подробнее

Показать сообщение отдельно
alkagolik
Заблокирован
03.08.2012, 07:52
deadstrike, писать код не буду, он получится большим. А что делать - разложу по полочкам. Итак:
1. булеан. Это множество подмножеств множества. если у тебя множество мощностью n, то всех его подмножеств, включая пустое подмножество и его самого будет http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{n}. Это как бы намекает на сложность программы если не ограничиваться встроенными типами, и наоборот на ограниченность, если все таки ограничиться встроенными типами. Но это еще цветочки. Задача №1 - получить булеан множества, мощностью n и поместить его в двумерный массив (или файел).
как найти булеан
Bash
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
indicator@pc-host:~$ cat test.cc
#include <iostream>
 
void boolean( int* a, int k ) {
 
    int m = 1 << k, i = 0, j;
    
    while ( i < m ) {
        
        j = 0;
        while ( j < k ) {
            if ( i & (1 << j) )
                std::cout << a[ j ] << ' ';
            ++j;
        }
        std::cout << std::endl;
        ++i;
    }
 
}
 
int main() {
    
    int a[] = { 0, 3, 5, 8 };
    
    boolean( a, 4 );
    return 0;
}
indicator@pc-host:~$ g++ test.cc
indicator@pc-host:~$ ./a.out 
 
0 
3 
0 3 
5 
0 5 
3 5 
0 3 5 
8 
0 8 
3 8 
0 3 8 
5 8 
0 5 8 
3 5 8 
0 3 5 8 
indicator@pc-host:~$

2. размещения, перестановки. Число всех перестановок порядка n равно n!, вот тебе и ягодки. После того как мы нашли булеан и (к примеру пока будем полагать что все множества в двумерном массиве) поместили его в двумерный массив. (т.к. длины массивов разные, то можно в нулевом элементе массива array[ i ][ 0 ] указывать его длину, а после уже плясать из первого элемента array[ i ][ 1 ]). Теперь мы создаем цикл от i = 0 и до http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{n} и начинаем осуществлять перестановки массива &array[ i ][ 1 ] с размером array[ i ][ 0 ]. Функций перестановки на форуме море. Указанная стандартная функция не подходит, т.к. она рассчитана на перестановки без повторений, но в сети полно валяется алгоритмов и исходных текстов, так что удачи.

З.Ы. из поста #3 я понял что номинальные значения символов в расчет не берутся, т.е. если множеству {a,a,a,a} поставить в соответствие множество {0, 1, 2, 3}, то надо найти все размещения <0, 1, 2, 3>, <0, 1, 3, 2> и т.д.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru