I am working on a project that I need a simple distributed combination algorithm based force brute to generate all combinations.
I am attaching the initial class diagram. The algorithm must accept:
Character Set Ex.: "0123456789" or "0123abcd" or ...
Minimum Length Ex.: 4
Maximum Length Ex.: 10
Actual Part Ex.: 5 (This is the part which algorithm will try 5 of 20, ignoring the rest of combinations)
Total Part Ex: 20
Path for the combination list Ex.: C:\[url removed, login to view]
Performance is a requirement!
The class/algorithm must be developed in Java language!
To help clarify, real usage will works like it. One server application will count how many computers are avaiable to work, then server will tell each computer:
- character set(it is the same to all),
- max and min combination length(same to all),
- assigned part
- total parts
Then each computer will produce all combinations of assigned part and save into a file.
-> Min and max combination length is 4
-> We will be using 0123456789 as character set.
-> There are two computer available to work.
Then Computer 1 will produce combinations from 0000 to 5000 and Computer 2 will produce combinations from 5000 to 9999.
The work is equal between computers, dynamic depending of charset, length and how many computers(parts).