这是作业
我正在做一个项目,其中一个非常小(非常小,一旦我开始工作......它基本上是项目其余部分的先决条件)的一部分是使用 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
}
我真的不明白这一点。正如你所看到的,那里有一些讲师提供的伪代码,但它的实现让我大吃一惊。
示例 I/O 将是这样的:
如果字母表是 {0, 1} 并且密码长度是 2,那么它需要生成 {0, 1, 00, 01, 10, 11}。
我感谢所有建议,但请认识到“初学者”一词并没有开始描述我的 Go 能力。说“使用频道”之类的话对我一点帮助都没有。解释是我的朋友……除了“使用渠道”之外,我从教授那里得到的运气并不好。