1 / 1 / 0
Регистрация: 25.01.2016
Сообщений: 107
1

Перестановки без i

08.10.2016, 00:46. Показов 446. Ответов 5
Метки нет (Все метки)

Есть рекурсивная функция ,генерирующая перестановки.Требуется,чтобы на i месте(p[i]) не стоял i.Причем проверять это надо не при выводе.Спасибо.
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
#include <iostream>
using namespace std;
const int N =11;
int n,a,p[N];
void f(int k){
    if(k == n+1){
        int c =0 ;
        for (int i = 1;i <= n; i++) {
            c += p[i];
        }
        
            for (int i = 1; i <= n; i++) {
                cout << p[i] << " ";
            }
            cout << endl;
        
     }else {
 
        for(int i = 0;i < a;i++){
 
            p[k] = i;
            f(k+1);
        }
    }
}
int main(){
    cin >> n >> a;
    f(1);
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2016, 00:46
Ответы с готовыми решениями:

Перестановки без повторений
привет помогите пожалуйста найти файлик в котором бы были все перестановки из 5 элементов. ...

Перестановки без повторений
Требуется дописать исключение повторений в коде,спасибо. #include &lt;iostream&gt; using namespace...

Перестановки без повторений
Как из этого кода сделать конфетку — чтобы не выводились повторения? #include &lt;iostream&gt; ...

Сортировка без перестановки элементов
мое задание:Реализуйте двунаправленный список. Необходимо предусмотреть режим сортировки элементов...

5
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
08.10.2016, 06:33 2
Какой смысл этого кода и функции в частности?
0
sourcerer
08.10.2016, 07:38
  #3
 Комментарий модератора 
Varitan, как запостить тему, чтобы не получить ответ.
0
1 / 1 / 0
Регистрация: 25.01.2016
Сообщений: 107
08.10.2016, 11:38  [ТС] 4
DemolitionMan, генерирует перестановки по указанным данным т.е. n=3 a =3
0 0 0
0 1 0
.......
2 2 1
и т.д.
Необходимо ,чтобы во время выполнения программы на i месте в текущей перестановке не стояло само i
т.е если i=1 ,на первом месте не может стоять 1
0
131 / 157 / 87
Регистрация: 06.04.2016
Сообщений: 992
09.10.2016, 08:52 5
Вообще не понимаю код. Вопросы?
1) Зачем в цикле в строке 19 обращаться к максимальному элементу как к а, а в циклах в строках 8 и 12 обращаться через n. Может их объединить?
2) Цикл for в строках 19-23, вроде как, заполнение массива, но в тоже время написан бред, потому что
C++
1
p[k] = i;
- в первую ячейку массива, последовательно присваиваются значения 0, 1, 2 и там остается 2.
3) При параметрах, которые Вы написали(n = 3, a = 3) в 6 строке
C++
1
if(k == n+1){
- здесь никогда не идет условие по true, т.е. (k = 1), (n+1=) - и они никогда не будут равны.
0
Эксперт CЭксперт С++
5064 / 2251 / 331
Регистрация: 20.02.2013
Сообщений: 5,602
Записей в блоге: 19
09.10.2016, 11:17 6
Varitan, сформулируйте уже техзадание по-человечески.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2016, 11:17

Требуется написать перестановки без повторений
#include &lt;iostream&gt; using namespace std; const int N =11; int n,a,p; void f(int k){ if(k...

Выписать все перестановки без повторений
Тему копирую из раздела C#, из-за того что на си народу больше. Есть строка 0,1,2,3,4 и к...

Шифрование методом простой перестановки без ключа
Всем доброй ночи! У меня получилось зашифровать фразы методом простой перестановки. Но мне нужно...

Сгенерировать всевозможные перестановки N чисел без повторений
Условие задачи: Сгенерировать всевозможные перестановки N чисел без повторений. (Использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.