Xem thảo luận Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc Bàn luận Giả sử chúng ta có một chuỗi độ dài và chúng ta muốn tạo tất cả các kết hợp/hoán vị được thực hiện r tại một thời điểm có/không có sự lặp lại. & Nbsp; Có bốn khái niệm cơ bản trong tổ hợp1] kết hợp mà không lặp lại/thay thế. & Nbsp; 2] kết hợp với sự lặp lại/thay thế. & Nbsp; 3] các khái niệm cơ bản trong lý thuyết tổ hợp. & nbsp; & nbsp;
1] Combinations without repetitions/replacements.
2] Combinations with repetitions/replacements.
3] Permutations without repetitions/replacements.
4] Permutations with repetitions/replacements.
Below is a summary table depicting the fundamental concepts in Combinatorics Theory.
The idea is to recur for all the possibilities of the string, even if the characters are repeating.
The base case of the recursion is when there is a total of ‘r’ characters and the combination is ready to be printed.
For clarity, see the recursion tree for the string- “ 1 2 3 4” and r=2
Bảng tóm tắt
C++
#include
Bài viết này là về trường hợp thứ ba [thứ tự không quan trọng và sự lặp lại cho phép]. Ý tưởng là tái diễn cho tất cả các khả năng của chuỗi, ngay cả khi các ký tự đang lặp lại. Trường hợp cơ sở của đệ quy là khi có tổng số ' Các ký tự r 'và sự kết hợp đã sẵn sàng để được in. & nbsp; Để rõ ràng, hãy xem cây đệ quy cho chuỗi- Hồi 1 2 3 4 và r = 2 & nbsp;
Dưới đây là việc thực hiện. & NBSP;
using
namespace
std;
using
0
void
CombinationRepetitionUtil[
int
chosen[],
int
#include
0
using
1using
0
#include
1int
#include
3int
#include
5int
namespace
1namespace
2namespace
3namespace
4
using
6namespace
2namespace
7namespace
8
using
6std;
0namespace
8
using
1using
2 using
3
using
6using
7 using
8int
namespace
0
using
1using
0
using
6void
2
using
6void
4
void
5void
6
using
1std;
3
using
1std;
0namespace
8
std;
3
using
1std;
3
using
0
using
1using
7 using
8int
std;
8
using
1int
6
std;
3
void
CombinationRepetitionUtil[
4int
CombinationRepetitionUtil[
6int
CombinationRepetitionUtil[
8int
int
0
using
0
using
1int
int
4
int
int
9
using
1int
chosen[],
3
using
1int
5
using
1int
chosen[],
6chosen[],
7chosen[],
8chosen[],
7int
0
std;
3
using
1int
int
3
#include
00
Dưới đây là việc thực hiện. & NBSP;
using
namespace
std;
using
0
void
CombinationRepetitionUtil[
int
chosen[],
int
#include
0
using
1using
0
#include
1int
#include
3int
#include
5int
namespace
1#include
28using
8#include
30#include
31
using
6#include
28using
8namespace
7#include
36
using
6std;
0namespace
8
using
1std;
3
using
6using
7 using
8int
namespace
0
using
1using
0
using
6void
2
using
6void
4
void
5void
6
using
1std;
3
using
1std;
0namespace
8
std;
3
using
1std;
3
using
0
using
1using
7 using
8int
std;
8
using
1int
6
std;
3
void
CombinationRepetitionUtil[
4int
CombinationRepetitionUtil[
6int
CombinationRepetitionUtil[
8int
int
0
using
0
using
1int
int
4
int
int
9
using
1int
chosen[],
3
using
1int
5
using
1int
chosen[],
6chosen[],
7chosen[],
8chosen[],
7int
0
std;
3
using
1int
int
3
using
1std;
0 int
8
C
Java
#include
98 #include
99
using
1using
01 void
CombinationRepetitionUtil[
int
chosen[],
int
#include
0
using
27using
28#include
30#include
31
namespace
1std;
3
namespace
1using
28namespace
7#include
36
namespace
1std;
0namespace
8
using
6std;
3
namespace
1int
#include
3int
#include
5int
#include
7__
namespace
1void
2
namespace
1using
50using
51using
52
#include
1void
6
using
6std;
3
using
6std;
0namespace
8
using
1using
2 using
3
using
6using
7 using
8int
namespace
0
using
1std;
3
using
6using
81using
25using
83using
25using
85using
51#include
36
using
1std;
3
using
1using
7 using
8int
std;
8
void
CombinationRepetitionUtil[
4int
CombinationRepetitionUtil[
6int
CombinationRepetitionUtil[
8int
int
0
using
1int
int
4
int
int
9
using
1int
chosen[],
3
using
1std;
3
std;
3
Python3
using
1int
chosen[],
6chosen[],
7chosen[],
8chosen[],
7int
0
namespace
21namespace
22
using
1int
int
3
using
1std;
0 int
8
C
using
6namespace
36namespace
43
using
6std;
0
using
1using
2 namespace
48
using
6std;
0
using
1namespace
522____326 namespace
54
using
1namespace
56namespace
57 using
51using
52
namespace
21namespace
61
using
1namespace
20
namespace
21namespace
65namespace
57 using
51namespace
68
namespace
19 namespace
70
using
1namespace
72namespace
26 namespace
74using
25namespace
76namespace
77 namespace
78
using
1using
81using
25using
83using
25namespace
84
namespace
85namespace
26 namespace
87using
51using
99___
namespace
96namespace
26 namespace
00
namespace
99namespace
26 std;
01std;
02std;
03 using
51
std;
05
C#
using
std;
07
using
91 #include
98 std;
10
using
1using
01 void
CombinationRepetitionUtil[
int
std;
16int
std;
18
namespace
1int
#include
3int
#include
5int
#include
7__
using
6using
2 using
19
namespace
1using
7 using
8int
std;
35
using
27std;
37namespace
3#include
36
namespace
1std;
3
namespace
1std;
43
namespace
1std;
0namespace
8
using
6std;
3
using
6using
7 using
8int
using
46
namespace
1void
2
namespace
1void
4
#include
1void
6
using
6std;
3
using
6std;
0namespace
8
using
1std;
3
using
1using
01 void
CombinationRepetitionUtil[
4int
std;
72int
using
6int
std;
79using
75 int
std;
82
using
6std;
84
using
1std;
3
using
1using
91 using
01 void
std;
91
using
6int
std;
94
using
6int
std;
97
using
6int
int
3
using
6int
5
using
1std;
3
std;
3
JavaScript
void
06
using
1void
08 void
09
namespace
1void
11
using
1using
0
using
6using
2 using
19
namespace
1using
7 using
8int
std;
35
using
27void
23namespace
3#include
36
namespace
1std;
3
namespace
1void
29void
30#include
36
namespace
1std;
0namespace
8
using
6std;
3
using
6using
7 using
8int
using
46
namespace
1void
2
namespace
1void
4
#include
1void
6
using
6std;
3
using
6std;
0namespace
8
using
1std;
3
using
1using
01 void
CombinationRepetitionUtil[
4int
std;
72int
using
1using
0
using
6int
std;
79using
75 int
std;
82
using
6std;
84
using
1std;
3
using
1using
91 using
01 void
std;
91
using
6int
std;
94
using
6int
std;
97
int
5
void
74
using
6int
int
3
1 1 1 2 1 3 1 4 2 2 2 3 2 4 3 3 3 4 4 4
JavaScriptFor a string of length- n and combinations taken r at a time with repetitions, it takes a total of O[n+r-1Cr] time.
References– //en.wikipedia.org/wiki/Combination
This article is contributed by Rachit Belwariar. If you like
GeeksforGeeks and would like to contribute, you can also write an article and mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above