这是一份作业
我正在进行一个项目,其中一个非常小的部分(一旦我完成此部分,它基本上就是接下来项目的前提条件)是使用 Go 协程生成一些组合。
我目前拥有的代码如下:
package bruteforce
// GenerateCombinations is an iterator function. Given an alphabet and a
// length, it will generate every possible combination of the letters in
// alphabet of the specified length.
//
// It is meant to be consumed by using the range clause:
//
// for combination := range GenerateCombinations(alphabet, length) {
// process(combination)
// }
//
func GenerateCombinations(alphabet string, length int) <-chan string {
GenerateCombinations(alphabet, length):
if length == 0:
yield ""
else:
for i := range alphabet{
for j := range GenerateCombinations(alphabet, length-1){
i + j
}
}
return nil
}
我真的完全不理解这个。你可以看到,那里有一些由教练提供的伪代码,但它的实现让我的大脑崩溃。
例如输入/输出可能是这样的:
如果字母表是 {0, 1} 并且密码长度为 2,那么它需要生成 {0, 1, 00, 01, 10, 11}。
我感谢所有的建议,但请认识到,“初学者”这个术语根本无法描述我在 Go 方面的能力。说一些像“使用通道”的话并没有帮助我。解释才是我的朋友...除了“使用通道”之外,我从我的教授那里并没有得到很多好的解释。