用于从笛卡尔集中选择特定集的逻辑
我正在制作一个密码暴力强迫工具作为学习练习,我希望它可以恢复。
所以,我想要的是能够说,这是一组可能的字符,如果我计算出这个设置的长度为n的每个可能组合的笛卡尔集合,x点的设置是什么?
但是,我想在不计算整个集合的情况下这样做。 我在网上看到过类似的逻辑,但是我无法概括为什么这么合适。
任何帮助都会很棒,谢谢! 如果有帮助的话,我会精通C#。
编辑:这是我之前提到的问题: 如何从笛卡尔积中选择特定项而不计算其他项
编辑:这是我的意思的一个例子:
Char set = [abcd] Length n = 4 Permutations: [aaaa] [aaab] [aaac] [aaad] [aaba] .... [dddd]
因此,如果我在4处搜索该集合,我会得到[aaad]。 但是,如果我正在搜索元素7000,那么到达那一点需要很长时间。
这实现了您链接问题的答案:
static string Get(string chars, int n, int i) { string ret = ""; int sizes = 1; for (int j = 0; j < n; j++) { ret = chars[(i / sizes) % chars.Length] + ret; sizes *= chars.Length; } return ret; }
例:
上述就是C#学习教程:用于从笛卡尔集中选择特定集的逻辑分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!
string chars = "abcd"; int n = 3; for (int i = 0; i < Math.Pow(chars.Length, n); i++) Console.WriteLine(i + "t" + Get(chars, n, i));
0 aaa 1 aab 2 aac 3 aad ... 61 ddb 62 ddc 63 ddd
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1005389.html