我想生成一个3 * 6的数字,可以形成一个3rows * 6cols的数组。但我不想在任何专栏中找到重复的内容。它们可以位于同一行中的任何位置,但在每列中,不应存在相同数字的任何重复。是否有生成该算法的算法?
答案 0 :(得分:1)
按列填充矩阵并使用Set来跟踪您在当前列中已使用的数字。您可以在伪代码中为每个单元格使用do-while语句:
for each column {
used = new set
for each cell in column {
do {
num = generate random number
} while (num already in used)
add num to used
add num to the current cell
}
}