【发布时间】:2014-03-17 21:30:41
【问题描述】:
我只是在编写一些经典的暴力破解密码程序,只是为了提高自己。
我已经在代码开头解释了我的程序是如何工作的。检查其中一些屏幕截图以更容易理解。
我的程序运行良好,但有点脏,如果我解决了这个问题,它会更快;
我有两个问题,
1-) 我的代码看起来又长又脏,因为我在 switch case 语句中复制了 8 次代码块。例如 case 1 循环使用一个字符长度的密码。 case 2 = 两个字符,case 8 = 8 个字符长度的密码。这些案例之间唯一的区别是“for 循环”计数,案例 1 有 1 个 for 循环,案例 8 有 8 个嵌套的 for 循环。我想让我的代码更漂亮,那么我怎样才能摆脱这个复制和粘贴代码并使其成为当前大小的 1/8 大小。 CTRL + MOUSE WHEEL DOWN ,缩小并查看复制粘贴的部分。
2-) 它先尝试 1 位,然后是 2 位,然后是 3 位,依此类推。所以它应该等待 1,2,3 得到 4 位数字。它使程序在更高的数字上浪费了很多时间。我的 CPU i7 3770k 有 6 个内核,我猜程序只运行一个内核,因为它显示 %13 CPU 使用率。我想在同一个任务上让它更高,比如 6 个核心,或者每个核心将处理一个部分,比如第一个核心将开始循环仅 8 个字符长度的核心,而第二个核心将对 7 个字符长度的核心做同样的事情......和当其中一个人找到答案时,程序将结束。我们真的可以做到吗?
代码太长了,这里就不放了,
代码如下: http://pastebin.com/ZT373674/
我希望我解释得很好,谢谢你从现在开始的帮助!
【问题讨论】:
-
我认为这可能更适合Code Review Stack Exchange
-
好的,我试试,我不知道有这样的东西。我真的不明白为什么人们会无缘无故地投票给我?我问了一个问题,人们只是为了好玩而投反对票,这并不酷,我是新来的。
-
因为您的问题非常广泛,而且 Stack Overflow 的格式也很差。您通过外部站点进行大量代码转储并在此处粘贴指向它的链接。 SO 是通过发布详细的问题示例来解决您遇到的问题。不要发布一个巨大的转储并说“请修复它”。此外,downvoting 对于修剪创建不佳的问题是必要的。 SO 不是一个拥抱盒。
-
好吧,那么对不起。但这就是重点,代码并没有那么长,它很长,因为它是 x8 复制版本。我不知道如何解决它并来这里问。无论如何,谢谢。
标签: c++ multithreading for-loop switch-statement copy-paste