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

Сгенерировать все k -элементные подмножества из N - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Табулирование функции Выручайте плз! http://www.cyberforum.ru/cpp-beginners/thread879281.html
Протабулируйте функции g(x,n) и q(x,n) по переменной х на интервале с шагом e. Использовать компоненты TEdit (для вводу a, b, e,n), TLabel, TMemo (для виводу результатов табулирования), TButton (для команд Табулировать и Очистить), TRadioButton (для вибора функций), TImage (для изображения функции). Добавлено через 58 минут up! Добавлено через 42 минуты ребята выручайте Добавлено...
C++ Произведение нечетных элементов массива Здравствуйте. стоит задача посчитать произведение нечетных элементов массива, которые находятся во второй его половине. Массив одномерный. я что-то там пытался писать...у меня ничего не получилось. еще не знаю как найти произведение нечетных элементов которые находятся именно во второй половине массива. Помогите. #include<stdlib.h> #include<iostream> int main() { http://www.cyberforum.ru/cpp-beginners/thread879279.html
C++ Run-Time Check Failure #2 - Stack around the variable 'buf2' was corrupted
Здравствуйте, программа вырезает слова из строки, идущие до символа ';'. Она работает, но в конце, после вывода его на экран, вылетает ошибка: "Run-Time Check Failure #2 - Stack around the variable 'buf' was corrupted.". Не понимаю, почему переменная оказывается переполненной. //#include "stdafx.h" #include <stdio.h> #include <stdlib.h> // для exit #include <cstring> //=string.h для работы со...
C++ Тест
1. Выберите правильный вариант. А) целые – int, вещественные – float или double, символьные – char Б) целые – int, вещественные – float или real, символьные – char В) целые – bool, вещественные – float или double, символьные – string Г) целые – int, вещественные – float или double, символьные – string
C++ Сформировать одномерный динамический массив http://www.cyberforum.ru/cpp-beginners/thread879265.html
Помогите, пожалуйста! Дан динамический двумерный массив A(N,N). Сформируйте одномерный динамический массив из элементов тех строк, которые начинаются с отрицательного элемента. (с++)
C++ Ровно вывести надписи Не подскажите, как можно выровнять все надписи типа "R=оо", приведенных на скриншоте. Текущий вывод выглядит вот так: cout<<setw(20)<<" R="<<"oo"<<endl; и все это проделывается в цикле подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
26.05.2013, 16:17     Сгенерировать все k -элементные подмножества из N
Цитата Сообщение от Rosman Посмотреть сообщение
надо сгенерировать все k -элементные подмножества из N и вывести их на экран
сочетания без повторений?
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
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <fstream>
#include <vector>
 
using namespace std;
 
//сочетания без повторений. взял с другой моей программы. переделывать под этот случай не стал потому, что лень.
//что бы выдавало индексы надо передавать n - 1
bool increase(vector<size_t> &vec, const size_t n)
{
    for (int i = vec.size() - 1; i >= 0; i--)
        if ( vec[i] + 1 <= n ) {
            if ( i != vec.size() - 1 && vec[i + 1] == vec[i] + 1 )
                continue;
            ++vec[i];
 
            for (int j = i + 1; j < vec.size(); j++)
                vec[j] = vec[j - 1] + 1;
            return true;
        }
    return false;
}
 
void to_file(ofstream &os, const vector<int> &data, const vector<size_t> &idx)
{
    for (auto &x : idx)
        os << data[x] << ' ';
    os << endl;
}
 
int main()
{
    ifstream input("input.txt");
    if (!input.good()) return -1;
    int x;
    vector<int> vals;
    while ( input >> x )
        vals.push_back( move(x) );
    input.close();
 
    const size_t n = vals.size() - 1;
    const size_t k = 5;
    if ( n + 1 < k) return -1;
 
    ofstream output("output.txt");
    vector<size_t> comb(k);
 
    for (auto i = 0; i != k; i++)
        comb[i] = i;
 
    to_file(output, vals, comb);
 
    while (increase(comb, n) )
        to_file(output, vals, comb);
 
    output.close();
    return 0;
}
 
Текущее время: 17:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru