Это домашнее заданиеПерейти Программирование: Комбинации Генерирующие
Я работаю над проектом, и очень маленький (очень маленький, как только я получаю эту работу ... это в основном предварительно REQ для отдыха проекта) часть его состоит в том, чтобы сгенерировать некоторые комбинации с помощью процедуры 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. Говорить такие вещи, как «использовать каналы», мне совсем не помогает. Объяснения - это мой друг ... что-то, что мне не удавалось выбраться из моего профессора, кроме «использования каналов».
Все это код, предоставленный инструктором. Это часть моей путаницы. – iMatthewCM