Arhn - архитектура программирования

Вычислить все возможные комбинации строки для длинной строки N

Используя язык C, я должен написать программу, которая вычисляет все возможные комбинации заданной строки.

Пример ввода:

азбука

Пример вывода:

А,В,С,АВ,АС,ВС,АВС.

Я написал этот код, и он работает для ввода моего примера, но в настоящее время он работает только для строк длиной ровно 3 символа. Я хочу изменить свою программу, чтобы она могла принимать строку длиной N символов и при этом выдавать правильный вывод.

Это мой код до сих пор:

int position1 = 0;
int position2 = 0;
char conjuntoQ[100]="\0";
size_t len;
while (m1.q[position1] != NULL) {
   position2 = position1;
   position2++;
   while (m1.q[position2] != NULL) {
     len = strlen(conjuntoQ);
     conjuntoQ[len] = m1.q[position];
     len = strlen(conjuntoQ);
     conjuntoQ[len] = m1.q[position2];
     len = strlen(conjuntoQ);
     conjuntoQ[len] = ',';
     position2++;
    }
position++;
}

  • С какой конкретной проблемой вы сталкиваетесь при выполнении своей задачи? Пожалуйста, найдите время, чтобы показать, что вы пробовали, и сформулировать четкую постановку проблемы и любые ошибки, с которыми вы столкнулись. 20.06.2016
  • моя проблема в том, что моя функция только объединяет строку, предполагая, что ее длина 3 символа, например: ABC, если вы посмотрите на мой код, у него есть 2, а если я хочу, чтобы он поддерживал строку с 4 символами, например: ABCD, мне пришлось бы добавьте еще одно время в мой код. что я могу сделать, чтобы мой код мог принимать строку с N символами, не добавляя больше времени. 20.06.2016
  • Вы уже пробовали рекурсивный подход? 20.06.2016
  • Правильно, я немного отредактировал ваш вопрос и переписал некоторые формулировки, чтобы лучше понять вашу проблему. 20.06.2016
  • @Fernando - ты спрашивал обо всех всех перестановках? Ваш пример вывода не является примером всех перестановок. Другими словами - действительно ли это дубликат другого вопроса? 20.06.2016
  • при дальнейшем исследовании я обнаружил, что правильным термом будет мощность множества, и я уже нашел способ сделать это. 24.06.2016

Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..