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

Рекурсия. Комбинаторика. Размещения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread112620.html
по практике дали, не могу сделать( Для заданной квадратной матрицы порядка n поменять местами элементы главной и побочной диагоналей. Найти сумму элементов в четных строках, расположенных ниже главной диагонали. Добавлено через 42 секунды кто сможет помогите))
C++ Читать с консола и записать в файл что здесь не так? #include <cstdlib> #include <iostream> #include <fstream> using namespace std; int main() { ofstream my_tekst("my_text.txt"); http://www.cyberforum.ru/cpp-beginners/thread112577.html
C++ int main() или int main(void)?
Показать, что функция не принимает никаких аргументов можно с помощью void. В языке С++ (не в С) принятно, что пустые скобки равнозначны void. (В языке С пустые скобки означают что вы ничего не собщаете о наличии аргументов ) чем отличается : не сообщаю о наличии аргументов функция не принимает никаких аргументов.......
C++ Перевод из pascal в С
Program pr4_1; uses crt; var firstmaxpos, lastminpos, n, i :integer; x, MAX,MIN :real; Begin Clrscr; Write(' Сколько чисел в последовательности ? '); read(n); Write(' Введите первое число ');read(x); MAX:= x; FirstMaxpos := 1;
C++ Использования шаблонов КЛАССОВ http://www.cyberforum.ru/cpp-beginners/thread112545.html
Привет!!! Кто может помочь с заданием, и его объяснить: 1).Создать шаблон класса однонаправленный список list.Определить конструкторы, деструктор, перегруженную операцию присваивания (“=”) и операции: - «» − доступ к элементу в заданной позиции, например: Type c; int i; list L; c=L; - «+» − объединить два списка; - «!=» − проверка на неравенство
C++ Структура, бинарный файл Помогите пожалуйста сделать задачу. Описать структуру с именем AEROFLOT, которая содержит следующие поля: 1). Название пункта назначения рейса; 2). Номер рейса; 3). Тип самолета. Написать программу, которая выполняет следующие действия: 1). Введение с клавиатуры данных в массив, который состоит из семи элементов типа AEROFLOT 2). Записать введенную информацию в бинарный файл 3). Написать... подробнее

Показать сообщение отдельно
Alex5
1040 / 703 / 102
Регистрация: 12.04.2010
Сообщений: 1,768
13.04.2010, 23:37     Рекурсия. Комбинаторика. Размещения
Массив a[] содержит k различных элементов из n возможных FIRST, FIRST+1, FIRST+2, ... FIRST+(n-1)
Функция Next() строит новое размещение и возвращает true.
Или, если все размещения ( из n по k ) перебрали, возвращает false.
Пример. n=3, k=2 a[] : 1 2
вызываем Next() a[] : 1 3 возвращаемое значение : true
вызываем Next() a[] : 2 1 возвращаемое значение : true
вызываем Next() a[] : 2 2 возвращаемое значение : true
вызываем Next() a[] : 3 1 возвращаемое значение : true
вызываем Next() a[] : 3 2 возвращаемое значение : false
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
#define FIRST 1
 
// true : i > 0 and there exists a[i0] == a[i] for  0 <= i0 <= i-1
bool HasCoincidence( int i, int a[] );
 
// create next k-permutation of  n  elements
// true : success;   false : fails, no permutations
bool Next ( int n,  int k, int a[] )
{
    if ( k <= 0 )    return false;
 
    do{
        a[k-1]++;
 
        if ( a[k-1] >= FIRST + n )
        {
            a[k-1] = FIRST;
            if ( ! Next( n, k-1, a ) )    return false;
        
        }
    
    } while( HasCoincidence( k-1, a ) ); 
    // while   a[k-1]   coincides with some of a[0], a[1], ... , a[k-2]
 
 
    return true;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru