When we mention integer partition numbers, two great mathematic masters naturally come to our minds: Euler and Ramanujan. Since integer partition number has no closed form, Euler's generating function makes it convenient to derive the partition number for any integer in unrestricted or restricted conditions. Euler's Pentagonal Number Thereom deduces a recurrence relation for any integer's partition number. Even generating function and recurrence relation can help a lot to tackle some partition problems which are usually NP hard, there is some problems that can be easily solved by computer. For Example:
Problem: In how many ways can we partition the integer 100 into three different positive integers? (e.g. 100 = 1+ 2 + 97)
Solution: If we restrict our parts in any partition in ascending order(e.g. 1,2,97 is increasing gradually), we can enumerate all combinations with a python script like the following.
N=100
count=0
for i in range(1,N):
re = N - i
for j in range(i+1,re):
last = N - i - j
if last > j:
count += 1
print("{} {} {}".format(i,j,last))
else:
break
print("total: {}".format(count))
Output:
1 2 97
1 3 96
1 4 95
1 5 94
1 6 93
1 7 92
1 8 91
1 9 90
1 10 89
1 11 88
1 12 87
1 13 86
1 14 85
1 15 84
1 16 83
1 17 82
1 18 81
1 19 80
1 20 79
1 21 78
1 22 77
1 23 76
1 24 75
1 25 74
1 26 73
1 27 72
1 28 71
1 29 70
1 30 69
1 31 68
1 32 67
1 33 66
1 34 65
1 35 64
1 36 63
1 37 62
1 38 61
1 39 60
1 40 59
1 41 58
1 42 57
1 43 56
1 44 55
1 45 54
1 46 53
1 47 52
1 48 51
1 49 50
2 3 95
2 4 94
2 5 93
2 6 92
2 7 91
2 8 90
2 9 89
2 10 88
2 11 87
2 12 86
2 13 85
2 14 84
2 15 83
2 16 82
2 17 81
2 18 80
2 19 79
2 20 78
2 21 77
2 22 76
2 23 75
2 24 74
2 25 73
2 26 72
2 27 71
2 28 70
2 29 69
2 30 68
2 31 67
2 32 66
2 33 65
2 34 64
2 35 63
2 36 62
2 37 61
2 38 60
2 39 59
2 40 58
2 41 57
2 42 56
2 43 55
2 44 54
2 45 53
2 46 52
2 47 51
2 48 50
3 4 93
3 5 92
3 6 91
3 7 90
3 8 89
3 9 88
3 10 87
3 11 86
3 12 85
3 13 84
3 14 83
3 15 82
3 16 81
3 17 80
3 18 79
3 19 78
3 20 77
3 21 76
3 22 75
3 23 74
3 24 73
3 25 72
3 26 71
3 27 70
3 28 69
3 29 68
3 30 67
3 31 66
3 32 65
3 33 64
3 34 63
3 35 62
3 36 61
3 37 60
3 38 59
3 39 58
3 40 57
3 41 56
3 42 55
3 43 54
3 44 53
3 45 52
3 46 51
3 47 50
3 48 49
4 5 91
4 6 90
4 7 89
4 8 88
4 9 87
4 10 86
4 11 85
4 12 84
4 13 83
4 14 82
4 15 81
4 16 80
4 17 79
4 18 78
4 19 77
4 20 76
4 21 75
4 22 74
4 23 73
4 24 72
4 25 71
4 26 70
4 27 69
4 28 68
4 29 67
4 30 66
4 31 65
4 32 64
4 33 63
4 34 62
4 35 61
4 36 60
4 37 59
4 38 58
4 39 57
4 40 56
4 41 55
4 42 54
4 43 53
4 44 52
4 45 51
4 46 50
4 47 49
5 6 89
5 7 88
5 8 87
5 9 86
5 10 85
5 11 84
5 12 83
5 13 82
5 14 81
5 15 80
5 16 79
5 17 78
5 18 77
5 19 76
5 20 75
5 21 74
5 22 73
5 23 72
5 24 71
5 25 70
5 26 69
5 27 68
5 28 67
5 29 66
5 30 65
5 31 64
5 32 63
5 33 62
5 34 61
5 35 60
5 36 59
5 37 58
5 38 57
5 39 56
5 40 55
5 41 54
5 42 53
5 43 52
5 44 51
5 45 50
5 46 49
5 47 48
6 7 87
6 8 86
6 9 85
6 10 84
6 11 83
6 12 82
6 13 81
6 14 80
6 15 79
6 16 78
6 17 77
6 18 76
6 19 75
6 20 74
6 21 73
6 22 72
6 23 71
6 24 70
6 25 69
6 26 68
6 27 67
6 28 66
6 29 65
6 30 64
6 31 63
6 32 62
6 33 61
6 34 60
6 35 59
6 36 58
6 37 57
6 38 56
6 39 55
6 40 54
6 41 53
6 42 52
6 43 51
6 44 50
6 45 49
6 46 48
7 8 85
7 9 84
7 10 83
7 11 82
7 12 81
7 13 80
7 14 79
7 15 78
7 16 77
7 17 76
7 18 75
7 19 74
7 20 73
7 21 72
7 22 71
7 23 70
7 24 69
7 25 68
7 26 67
7 27 66
7 28 65
7 29 64
7 30 63
7 31 62
7 32 61
7 33 60
7 34 59
7 35 58
7 36 57
7 37 56
7 38 55
7 39 54
7 40 53
7 41 52
7 42 51
7 43 50
7 44 49
7 45 48
7 46 47
8 9 83
8 10 82
8 11 81
8 12 80
8 13 79
8 14 78
8 15 77
8 16 76
8 17 75
8 18 74
8 19 73
8 20 72
8 21 71
8 22 70
8 23 69
8 24 68
8 25 67
8 26 66
8 27 65
8 28 64
8 29 63
8 30 62
8 31 61
8 32 60
8 33 59
8 34 58
8 35 57
8 36 56
8 37 55
8 38 54
8 39 53
8 40 52
8 41 51
8 42 50
8 43 49
8 44 48
8 45 47
9 10 81
9 11 80
9 12 79
9 13 78
9 14 77
9 15 76
9 16 75
9 17 74
9 18 73
9 19 72
9 20 71
9 21 70
9 22 69
9 23 68
9 24 67
9 25 66
9 26 65
9 27 64
9 28 63
9 29 62
9 30 61
9 31 60
9 32 59
9 33 58
9 34 57
9 35 56
9 36 55
9 37 54
9 38 53
9 39 52
9 40 51
9 41 50
9 42 49
9 43 48
9 44 47
9 45 46
10 11 79
10 12 78
10 13 77
10 14 76
10 15 75
10 16 74
10 17 73
10 18 72
10 19 71
10 20 70
10 21 69
10 22 68
10 23 67
10 24 66
10 25 65
10 26 64
10 27 63
10 28 62
10 29 61
10 30 60
10 31 59
10 32 58
10 33 57
10 34 56
10 35 55
10 36 54
10 37 53
10 38 52
10 39 51
10 40 50
10 41 49
10 42 48
10 43 47
10 44 46
11 12 77
11 13 76
11 14 75
11 15 74
11 16 73
11 17 72
11 18 71
11 19 70
11 20 69
11 21 68
11 22 67
11 23 66
11 24 65
11 25 64
11 26 63
11 27 62
11 28 61
11 29 60
11 30 59
11 31 58
11 32 57
11 33 56
11 34 55
11 35 54
11 36 53
11 37 52
11 38 51
11 39 50
11 40 49
11 41 48
11 42 47
11 43 46
11 44 45
12 13 75
12 14 74
12 15 73
12 16 72
12 17 71
12 18 70
12 19 69
12 20 68
12 21 67
12 22 66
12 23 65
12 24 64
12 25 63
12 26 62
12 27 61
12 28 60
12 29 59
12 30 58
12 31 57
12 32 56
12 33 55
12 34 54
12 35 53
12 36 52
12 37 51
12 38 50
12 39 49
12 40 48
12 41 47
12 42 46
12 43 45
13 14 73
13 15 72
13 16 71
13 17 70
13 18 69
13 19 68
13 20 67
13 21 66
13 22 65
13 23 64
13 24 63
13 25 62
13 26 61
13 27 60
13 28 59
13 29 58
13 30 57
13 31 56
13 32 55
13 33 54
13 34 53
13 35 52
13 36 51
13 37 50
13 38 49
13 39 48
13 40 47
13 41 46
13 42 45
13 43 44
14 15 71
14 16 70
14 17 69
14 18 68
14 19 67
14 20 66
14 21 65
14 22 64
14 23 63
14 24 62
14 25 61
14 26 60
14 27 59
14 28 58
14 29 57
14 30 56
14 31 55
14 32 54
14 33 53
14 34 52
14 35 51
14 36 50
14 37 49
14 38 48
14 39 47
14 40 46
14 41 45
14 42 44
15 16 69
15 17 68
15 18 67
15 19 66
15 20 65
15 21 64
15 22 63
15 23 62
15 24 61
15 25 60
15 26 59
15 27 58
15 28 57
15 29 56
15 30 55
15 31 54
15 32 53
15 33 52
15 34 51
15 35 50
15 36 49
15 37 48
15 38 47
15 39 46
15 40 45
15 41 44
15 42 43
16 17 67
16 18 66
16 19 65
16 20 64
16 21 63
16 22 62
16 23 61
16 24 60
16 25 59
16 26 58
16 27 57
16 28 56
16 29 55
16 30 54
16 31 53
16 32 52
16 33 51
16 34 50
16 35 49
16 36 48
16 37 47
16 38 46
16 39 45
16 40 44
16 41 43
17 18 65
17 19 64
17 20 63
17 21 62
17 22 61
17 23 60
17 24 59
17 25 58
17 26 57
17 27 56
17 28 55
17 29 54
17 30 53
17 31 52
17 32 51
17 33 50
17 34 49
17 35 48
17 36 47
17 37 46
17 38 45
17 39 44
17 40 43
17 41 42
18 19 63
18 20 62
18 21 61
18 22 60
18 23 59
18 24 58
18 25 57
18 26 56
18 27 55
18 28 54
18 29 53
18 30 52
18 31 51
18 32 50
18 33 49
18 34 48
18 35 47
18 36 46
18 37 45
18 38 44
18 39 43
18 40 42
19 20 61
19 21 60
19 22 59
19 23 58
19 24 57
19 25 56
19 26 55
19 27 54
19 28 53
19 29 52
19 30 51
19 31 50
19 32 49
19 33 48
19 34 47
19 35 46
19 36 45
19 37 44
19 38 43
19 39 42
19 40 41
20 21 59
20 22 58
20 23 57
20 24 56
20 25 55
20 26 54
20 27 53
20 28 52
20 29 51
20 30 50
20 31 49
20 32 48
20 33 47
20 34 46
20 35 45
20 36 44
20 37 43
20 38 42
20 39 41
21 22 57
21 23 56
21 24 55
21 25 54
21 26 53
21 27 52
21 28 51
21 29 50
21 30 49
21 31 48
21 32 47
21 33 46
21 34 45
21 35 44
21 36 43
21 37 42
21 38 41
21 39 40
22 23 55
22 24 54
22 25 53
22 26 52
22 27 51
22 28 50
22 29 49
22 30 48
22 31 47
22 32 46
22 33 45
22 34 44
22 35 43
22 36 42
22 37 41
22 38 40
23 24 53
23 25 52
23 26 51
23 27 50
23 28 49
23 29 48
23 30 47
23 31 46
23 32 45
23 33 44
23 34 43
23 35 42
23 36 41
23 37 40
23 38 39
24 25 51
24 26 50
24 27 49
24 28 48
24 29 47
24 30 46
24 31 45
24 32 44
24 33 43
24 34 42
24 35 41
24 36 40
24 37 39
25 26 49
25 27 48
25 28 47
25 29 46
25 30 45
25 31 44
25 32 43
25 33 42
25 34 41
25 35 40
25 36 39
25 37 38
26 27 47
26 28 46
26 29 45
26 30 44
26 31 43
26 32 42
26 33 41
26 34 40
26 35 39
26 36 38
27 28 45
27 29 44
27 30 43
27 31 42
27 32 41
27 33 40
27 34 39
27 35 38
27 36 37
28 29 43
28 30 42
28 31 41
28 32 40
28 33 39
28 34 38
28 35 37
29 30 41
29 31 40
29 32 39
29 33 38
29 34 37
29 35 36
30 31 39
30 32 38
30 33 37
30 34 36
31 32 37
31 33 36
31 34 35
32 33 35
total: 784