Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 7 / 2
Регистрация: 08.12.2020
Сообщений: 118

Как работает программа

10.06.2021, 19:02. Показов 392. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, есть вот такой код:
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
#include <iostream>
 
using namespace std;
 
void printSubsets(int numOfBits, int num)
 
{
    if (num >= 0){
        cout << "{ ";
        subset(numOfBits - 1, num, numOfBits);
        cout << "}" << endl;
        printSubsets(numOfBits, num - 1);
    }
    else
        return;
}
 
void subset(int nthBit, int num, int numOfBits){
    if (nthBit >= 0){
        if (num & (1 << nthBit))
        {
            cout << numOfBits - nthBit << " ";
        }
        subset(nthBit - 1, num, numOfBits);
    }
    else
        return;
}
 
int main()
{
    cout << "Enter N: ";
    int n;
    cin >> n;
    cout << endl;
    printSubsets(n, pow(2, n) - 1);
}
Рекурсия печатает все подмножества множества {1 2 3... N}. Он работает на основе побитового смещения, но не совсем понимаю, каким образом, может кто-нибудь помочь, объяснить?

Добавлено через 1 час 13 минут
Ну кто-нибудь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2021, 19:02
Ответы с готовыми решениями:

Программа, которая работает как программа "Keyboard maniac"
Здравствуйте, я не знаю куда можно задать такой вопрос, но я хочу узнать как написать программу которая работает ни в окне а как программа:...

Объясните как работает программа и как составить для нее блоксхему.
Как работает программа? И где можно почитать про строги и операторы, которые здесь используются? + нужно нарисовать блоксхему к ней, но я...

Как работает эта программа? Как находится площадь? Вычислить S = sh(x) = x + x^3/3! + x^5/5! + .+
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; long int factorial(int fact) { long f = 1; int i = 1; ...

1
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
10.06.2021, 21:55
Объяснений в инете море. Вот это за секунду нашлось (спойлер)
Кликните здесь для просмотра всего текста
Для любого возможного подмножества характерно то, что каждый элемент исходного множества либо принадлежит, либо не принадлежит ему Выразить столь ученую мысль проще можно, обозначив принадлежность единицей, а не-принадлежность - нулем. Но тогда каждому подмножеству соответствует просто n-значное число в двоичной системе счисления!

Следует только учесть, что двоичные числа в этом случае могут начинаться с произвольного количества незначащих нулей. Иначе говоря, можно сказать, что совокупность всех подмножеств множества мощностью в n элементов - это n- или менее значные двоичные числа.

Отсюда ясно, что полный перебор всех подмножеств данного множества - это перебор всех двоичных чисел от n нулей до n единиц включительно. Первое из этих чисел соответствует пустому множеству, последнее - исходному.


Просто проверяем нужные биты в двоичном N-битовом "портрете" множества из N элементов.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2021, 21:55
Помогаю со студенческими работами здесь

Как работает программа
Уважаемые форумчане! Подскажите пожалуйста какое значение будет находиться в ячейке Х по завершению программы (при остановке на метке...

Как работает программа
var s:string; i:integer; begin readln(s); for i:=1 to length(s)do if s in then s:=chr(ord(s)-32); /// А именно вот эта...

Как работает программа
Помогите пожалуйста разобраться, только начинаю изучать программирование микроконтроллеров. include &quot;can128def.inc&quot; .ORG...

Как работает программа
Я знаю,что для Вас это несложно, объясните пожалуйста, у меня Java была 1,5 месяца учёбы из которых я месяц, т.е последнее время пролежал в...

Как работает программа
Не могу понять, как работает эта программа (код нашёл на каком – то из сайтов): // crt_strtok.c // compile with: /W3 // In this...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru