Могу написать только для qbasic
cls
randomize time
dim a(4,4)
For x=1 to 4
For y=1 to 4
a(x,y)=int(rnd*14+1)
next y
next x
Другие языки программирования и технологии
как сделать массив из случайных чисел от 1 до 15 (размерность массива 4х4) что бы они не повторялись в VBA????
Нечто вроде этого:
Sub RandArray()
Dim m As Integer ' количество строк матрицы
Dim n As Integer ' количество столбцов матрицы
Dim i As Integer ' номер строки
Dim j As Integer ' номер столбца
Dim k As Integer ' номер строки
Dim l As Integer ' номер столбца
Dim r As Integer ' случайное число
Dim f As Boolean ' признак (флаг) нахождения числа
Dim mc As Integer ' количество необходимых чисел
Dim c As Integer ' счётчик количества полученных чисел
m = 4 ' задаём количество строк матрицы
n = 4 ' задаём количество столбцов матрицы
mc = 15 ' задаём количество необходимых чисел
ReDim a(m, n) As Integer ' матрица
For i = 1 To m ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером m
For j = 1 To n ' в цикле, начиная с первого столбца матрицы и заканчивая столбцом с номером n
Do ' цикл с постусловием
r = Int(Rnd * 15 + 1) ' получаем случайное число от 1 до 15
f = False ' сбрасываем признак нахождения числа в массиве
For k = 1 To m ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером m
For l = 1 To n ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером n
If a(k, l) = r Then ' если встречаем в матрице это число, то
f = True ' выставляем признак нахождения числа в Истину
Exit For ' завершаем цикл для l
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
If f Then
Exit For ' если выставлен флажок нахождения числа, то завершаем цикл для k
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Loop While f ' пока находим это число в массиве
a(i, j) = r ' число в массиве не было найдено, поэтому присваиваем его очередному элементу массива a
с = с + 1 ' и увеличиваем счётчик количества полученных случайных чисел
Debug.Print a(i, j), ' печатаем очередной элемент массива и символ табуляции (формируем строку матрицы)
If с = mc Then ' если получено необходимое количество чисел, то
Exit For ' завершаем цикл для j
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Debug.Print ' переход к новой строке матрицы, результат выводится в Immediate Window (Ctrl+G)
If с = mc Then ' если получено необходимое количество чисел, то
Exit For ' завершаем цикл для i
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Debug.Print ' а это для красоты (чтобы отделить результаты предыдущего запуска программы)
End Sub
Sub RandArray()
Dim m As Integer ' количество строк матрицы
Dim n As Integer ' количество столбцов матрицы
Dim i As Integer ' номер строки
Dim j As Integer ' номер столбца
Dim k As Integer ' номер строки
Dim l As Integer ' номер столбца
Dim r As Integer ' случайное число
Dim f As Boolean ' признак (флаг) нахождения числа
Dim mc As Integer ' количество необходимых чисел
Dim c As Integer ' счётчик количества полученных чисел
m = 4 ' задаём количество строк матрицы
n = 4 ' задаём количество столбцов матрицы
mc = 15 ' задаём количество необходимых чисел
ReDim a(m, n) As Integer ' матрица
For i = 1 To m ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером m
For j = 1 To n ' в цикле, начиная с первого столбца матрицы и заканчивая столбцом с номером n
Do ' цикл с постусловием
r = Int(Rnd * 15 + 1) ' получаем случайное число от 1 до 15
f = False ' сбрасываем признак нахождения числа в массиве
For k = 1 To m ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером m
For l = 1 To n ' в цикле, начиная с первой строки матрицы и заканчивая строкой с номером n
If a(k, l) = r Then ' если встречаем в матрице это число, то
f = True ' выставляем признак нахождения числа в Истину
Exit For ' завершаем цикл для l
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
If f Then
Exit For ' если выставлен флажок нахождения числа, то завершаем цикл для k
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Loop While f ' пока находим это число в массиве
a(i, j) = r ' число в массиве не было найдено, поэтому присваиваем его очередному элементу массива a
с = с + 1 ' и увеличиваем счётчик количества полученных случайных чисел
Debug.Print a(i, j), ' печатаем очередной элемент массива и символ табуляции (формируем строку матрицы)
If с = mc Then ' если получено необходимое количество чисел, то
Exit For ' завершаем цикл для j
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Debug.Print ' переход к новой строке матрицы, результат выводится в Immediate Window (Ctrl+G)
If с = mc Then ' если получено необходимое количество чисел, то
Exit For ' завершаем цикл для i
End If
DoEvents ' позволяем системе отреагировать на другие события
Next
Debug.Print ' а это для красоты (чтобы отделить результаты предыдущего запуска программы)
End Sub
1) Заполняем массив по порядку
2) Берем 2 любых числа из массива и меняем их местами
3) Повторяем шаг №2 сто раз, или 1000
CLS
DIM m(4, 4)
//Заполняем массив по порядку
k = 1
FOR i = 1 TO 4
FOR j = 1 TO 4
m(i, j) = k
k = k + 1
NEXT j
NEXT i
//Перемешиваем
FOR k = 1 TO 100
i = INT(RND * 4) + 1
j = INT(RND * 4) + 1
a = INT(RND * 4) + 1
b = INT(RND * 4) + 1
SWAP m(i, j), m(a, b)
NEXT k
//Выводим на экран
FOR i = 1 TO 4
FOR j = 1 TO 4
PRINT m(i, j),
NEXT j
PRINT
NEXT i
2) Берем 2 любых числа из массива и меняем их местами
3) Повторяем шаг №2 сто раз, или 1000
CLS
DIM m(4, 4)
//Заполняем массив по порядку
k = 1
FOR i = 1 TO 4
FOR j = 1 TO 4
m(i, j) = k
k = k + 1
NEXT j
NEXT i
//Перемешиваем
FOR k = 1 TO 100
i = INT(RND * 4) + 1
j = INT(RND * 4) + 1
a = INT(RND * 4) + 1
b = INT(RND * 4) + 1
SWAP m(i, j), m(a, b)
NEXT k
//Выводим на экран
FOR i = 1 TO 4
FOR j = 1 TO 4
PRINT m(i, j),
NEXT j
NEXT i
sub a()
dim a(4,4)
For i=1 to 4
For j=1 to 4
a(i,j)=integer (random 14+1)
randomize
next i
next j
end sub
dim a(4,4)
For i=1 to 4
For j=1 to 4
a(i,j)=integer (random 14+1)
randomize
next i
next j
end sub
:))
4х4 = 16, 1..15 = 15, 15<16 и как же ты его заполнишь, так чтоб не повторялись?
4х4 = 16, 1..15 = 15, 15<16 и как же ты его заполнишь, так чтоб не повторялись?
Похожие вопросы
- randomize();. С++; Как заполнить массив допустим из 15 чисел случайным образом от 1 до 15 , чтобы числа не повторялись?
- Пишу программу-лото на с (НЕ с++ или с#). Как сделать, чтобы генерировались случайные числа, кроме уже выпавших?
- Правильно я сделал выработку неповторяющихся случайных чисел в диапазоне N?С интернета брал подпрограммки.
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.
- MASM32 случайные числа, , массив
- Делфи, вывод в мемо случайных чисел без повторов из массива. массив от 1 до 35.
- Упорядочить массив по убыванию из 10 случайных чисел на промежутке от -500 до 500. Информатика, 9 класс.
- Заполните массив случайными числами. Отсортируйте массив по возрастанию методом пузырька.
- Файл F генерируется из случайных чисел, размерность которой указывает пользователь. Найти сумму четных и нечетных.
- Как заполнить двумерный массив 4x4 случайными неповторяющимися числами от 1 до 16?