在练习多线程时,我希望简单地构建一个可以计算字符集的所有可能组合(即暴力破解/匹配)并在线程之间分配工作的应用程序,以便真正测量并亲眼看到线程如何影响算法在不同系统上的时间。
到目前为止,计算这个的算法对我来说是一个很大的挑战。在最近的一个线程上(向这个简单的算法添加多线程的有效方法是什么?)我似乎明白了我需要做的事情(轻松传递每个字符范围的特定部分来分配工作),尽管该算法根本不起作用,而且我对复杂性的理解不足以在我的应用程序中修复它。
以一种简单的迭代方式,我如何计算给定字符集的每个组合,具有特定长度(即长度为 5?)
例如:
unsigned char range[] = "abcdefghijklmnopqrstuvwxyz0123456789";
brute_force(range, len); //character set, length of string to compute all combinations of
//...
我将非常感谢能减轻一些在找到正确概念时的压力。