2020: rgbctf: insert creative algo chall name - 5225225

This commit is contained in:
5225225 2020-07-15 00:24:51 +01:00
parent 58e78c7c3d
commit bf6ebc4719
2 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,44 @@
# [insert creative algo chall name]
writeup by [5225225](https://www.5snb.club) for [BLÅHAJ](https://blahaj.awoo.systems)
**Misc**
**449 points**
**67 solves**
> Find the total number of unique combinations for input values of x = 4 and n = 12
>
> There exists a set of values, r, with values binary increasing (2^0, 2^1, ... 2^(n-1))
>
> A combination is a set of x values where each value is generated by creating x subsets of r with
> all values within a subset being summed
>
> The x subsets should use all values in r exactly once.
(full challenge text in challenge.txt)
## Writeup
This is fairly simple stuff, easily translated into python. I installed more-itertools
(<https://more-itertools.readthedocs.io/en/stable/)> for `set_partitions`, which makes this problem
trivial.
```python
import more_itertools
x = 4
n = 12
r = [2**i for i in range(n)]
parts = more_itertools.set_partitions(r, k = x)
summed = []
for p in parts:
o = set()
for i in p:
o.add(sum(i))
summed.append(o)
print(len(summed))
```

View File

@ -0,0 +1,62 @@
Find the total number of unique combinations for input values of x = 4 and n = 12
There exists a set of values, r, with values binary increasing (2^0, 2^1, ... 2^(n-1))
A combination is a set of x values where each value is generated by creating x subsets of r with all values within a subset being summed
The x subsets should use all values in r exactly once.
Example Case:
Input:
x = 3
n = 5
Given the input above we can create a set r that consists of the following n values
[2^0, 2^1, 2^2, 2^3, 2^4]
OR
[1, 2, 4, 8, 16]
Each combination is formed via x subsets of the set [1, 2, 4, 8, 16]
[16], [2,8], [1, 4]
[1, 2, 4], [8], [16]
[1, 4], [2, 8], [16]
...
This renders sets of size x that are the sums of the elements of each set
16, 10, 5
7, 8, 16
5, 10, 16
...
Note: combination 1 and combination 3 are the duplicates and should not be counted twice as they both consist of 5, 10, and 16
All possible unique combinations for x = 3 and n = 5:
3 8 20
4 8 19
1 12 18
4 9 18
5 8 18
2 12 17
4 10 17
6 8 17
1 14 16
2 13 16
3 12 16
4 11 16
5 10 16
6 9 16
7 8 16
1 2 28
1 4 26
2 4 25
1 6 24
2 5 24
3 4 24
1 8 22
2 8 21
1 10 20
2 9 20
Final Output:
25
(There are 25 combinations generated above)
*IMPORTANT*
The answer should be formatted as rgbctf{[output value here]} with your output value replacing [output value here]