マルチスレッディングの実践において、文字セットのすべての可能な組み合わせ (ブルート フォース クラッキング/マッチング) を計算し、スレッド間で作業を分散できるアプリケーションを単純に構築して、スレッディングがどのように影響するかを直接測定して確認したいと考えていました。異なるシステムでのアルゴリズムの時間。
これを計算するアルゴリズムは、これまでのところ私にとって大きな課題でした。最近のスレッド ( What would be a effective way to add multithreading to this simple algorithm? ) で、アルゴリズムは単純に機能しませんでしたが、必要なことを理解しているように見えました (各文字範囲の特定の部分を簡単に渡して作業を分散させます)。 、そしてアプリケーションで修正するのに十分なほど複雑さを理解していませんでした。
シンプルで反復的な方法で、特定の長さ (つまり、長さが 5) の特定の文字セットのすべての組み合わせを計算するにはどうすればよいでしょうか?
例:
unsigned char range[] = "abcdefghijklmnopqrstuvwxyz0123456789";
brute_force(range, len); //character set, length of string to compute all combinations of
//...
これを行うための適切な概念を見つける際のストレスを和らげることができれば、非常にありがたいです。