Я использую VBA
У меня есть столбец целых чисел в массиве
Я запускаю массив через модуль рандомизатора и копирую его во второй столбец
Iзапустить массив через модуль рандомизатора и скопировать его в третий столбец
Я запустить массив через модуль рандомизатора и скопировать его в четвертый столбец
Проблема, по-моему, не может быть решенаприходят дубликаты в одной строке
IE:
2 13 27 14
27 27 13 5
14 5 2 13
13 2 14 27
5 14 5 2
* столбцы намного длиннее
Я искал в Интернете, но все сосредоточены на создании случайных чисел без дубликатов,Я нашел тасование, но опять-таки оно кажется одномерным.
'// get a random number from 1 to the last row of column 25
For N1 = 1 To LastRow
Again:
Randomize Timer
RNum = Int(Rnd * (LastRow - 1 + 1) + 1)
'// this is where the values in "NArray" get shuffled around
Temp = NArray(N1)
NArray(N1) = NArray(RNum)
NArray(RNum) = Temp
ws5.Cells(N1, Lp) = NArray(N1)
'// this looks for duplicate numbers in the row
Select Case Lp
Case 26: a = ws5.Cells(N1, Lp).Value + 0
b = ws5.Cells(N1, Lp - 1).Value + 0
If a = b Then
GoTo Again
End If
Case 27: a = ws5.Cells(N1, Lp).Value + 0
b = ws5.Cells(N1, Lp - 2).Value + 0
c = ws5.Cells(N1, Lp - 1).Value + 0
If a = b Then
GoTo Again
ElseIf a = c Then
GoTo Again
End If
...
'// тасованный массив вставляется в ячейки столбца 26 Для N1 = 1 To LastRow ws5.Cells (N1, Lp) = NArray (N1) Далее N1 Далее Lp
нет ошибок, за исключением того, что при сравнении значений ячеек в строке, переходящей от столбца к столбцу, пропускаются повторяющиеся значения, такие как строка 2, столбец 3может содержать «14», а в строке 2 столбца 4 содержится «14», он не зацикливается и не получает другое значение для столбца 4