x bell

구독 해주세요!

x
search--v1

Welcome to my Blog

From hardware to software,

I'm System Engineer

down_to_down
facebook-like--v1

Best POST

Wait! Let's take a look at the most popular posts!

Please take a look at the latest post that I wrote with all my heart.

external-Study-school-smashingstocks-flat-smashing-stocks-5

Activities

These are the activities I've been working on so far.

Education

B.S. @Dankook University, School of Electronics and Electrical Engineering

Awards and Honors

Sungkyunkwan University Engineering Innovation Center. Creative Comprehensive Design Competition (Nov. 2021)

External activities

College Student Code-it Coding Camp 5th (an Outstanding Activist)

Comento Course - Designing Semiconductor Circuits (CHIPs) with Eyes

Taking a lecture

IDEC_ Deep Learning Foundation and Design(Jul. 2022)

IDEC_ Verilog HDL Basic and Deep Learning Neural Network Design(Jul. 2022)

IDEC_ Embedded System Design Based on FPGA(Aug. 2022)

IDEC_ Embedded Memory (SRAM) Foundation(Jan. 2023)

IDEC_ Artificial Intelligence Acceleration Processor(Feb. 2023)

IDEC_ CUDA-based GPU programming foundation(Jul. 2023)

IDEC_ Layout Design for Full Custom IC Design(Jul. 2023)

Udemy_ 객체지향 프로그래밍 및 설계(Java)

Udemy_ Android 12 및 Kotlin 개발 완전 정복

Udemy_ Git & Github 실무 활용 완벽 가이드

Udemy_ The Web Developer 부트캠프 2023

Udemy_ High-Level Synthesis for FPGA, Part 1-Combinational Circuits

인프런_ 설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계

인프런_ 설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복

Tool

Tools & Skills

I can use this Tools & Skills. Also, I'm practicing something.

Language

C C++ Python Java kotlin javascript--v1 assembly matlab

Web & App & MarkUp

Html Css Bootstrap React Node MongoDB android-studio--v2

Hardware

Systemverilog Vivado Vitis arduino Raspberrypi Arm Risc-V

Design

adobe-photoshop--v1 adobe-illustrator--v1 davinci-resolve microsoft-visio-2019

Editer & Documentation

visual-studio-code-2019 external-sublime-text-a-sophisticated-text-editor-for-code-markup-language-logo-color-tal-revivo microsoft-powerpoint-2019 microsoft-excel-2019--v1 microsoft-word-2019

Ai

tensorflow pytorch

etc.

Git external-Linux-logos-and-brands-those-icons-flat-those-icons
filled-like

Interests

I'm interested in and working on the things that come out below!

● System Design

● Logic Semiconductor Design

● Web & App Design

● AI Model Compression & Computer Vision

music

Rhythmic Hobby

Come listen to my little hobby, EDM Composition.

castle

 

1. 순열이란?

순열(Permutation)집합의 원소들을 나열하는 모든 가능한 방법을 의미합니다.

 

예를 들어, {1, 2, 3}이라는 세 개의 원소로 이루어진 집합이 있다면, 이 집합의 순열은 {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, {3, 2, 1}과 같이 6가지가 됩니다.

 

 

수학적으로 순열은 n개의 서로 다른 원소에서 r개를 선택하여 나열하는 경우의 수를 나타내는데, 이를 nPr 또는 P(n, r)로 표기합니다. nPr은 다음과 같이 계산됩니다:

 

$$ nPr = \frac{n!}{(n-r)!} $$

 

 

2. C++로 나타낸 순열

#include <bits/stdc++.h>
using namespace std;

vector<int> v = {1, 2, 3};

void swap(int& a, int& b){
    int temp = a;
    a = b;
    b = temp;
}

void printVector(){
    cout << "Permutation: ";
    for (int i : v) cout << i << " ";
    cout << endl;
}

void makePermutation(int n, int r, int depth){
    // cout << n << " " << r << " " << depth << '\n';
    if(r == depth){
        printVector();
        return;
    }
    for (int i = depth; i < n; i++){
        swap(v[i], v[depth]);
        makePermutation(n, r, depth + 1);
        swap(v[i], v[depth]);
    }
}

int main(){
    makePermutation(3, 3, 0);
    return 0;
}

 

- n순열을 생성할 대상의 크기입니다.

- r현재까지 생성한 순열의 길이입니다.

- depth현재 순열이 어디까지 완성되었는지를 나타냅니다.

 

깊이 r에 도달하면 현재의 순열을 출력하고 반환합니다. 그렇지 않으면, 현재 위치 depth부터 마지막 위치까지의 각 요소를 한 번씩 선택하여 재귀적으로 순열을 생성합니다.

 

실행 결과


 

 

3. 도식도

 

 

'Study > C & C++' 카테고리의 다른 글

[C++] 재귀함수/다중 for문으로 조합 구현하기  (0) 2023.11.26
[C++] next_permutation() 함수  (1) 2023.11.25
[C++] 자료구조 정리  (1) 2023.11.25

Tag

C

Contents

island
dragon
Danger!

이 친구는 사실 용이에요.

용에게 인사를 해주세요.

man-raising-hand-icon
hashtag
fox