Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Date;
- public class Main {
- public static void main(String[] args) {
- int[][] matrix = new int[1000][1000]; //Исходная матрица
- int[] vector = new int[1000]; //Исходный вектор
- int[] arrayVxM = new int[1000]; //(1) Массив, полученный при умн-ии Вектора на Матрицу
- int[] arrayMxV = new int[1000]; //(2) Массив, полученный при умн-ии Матрицы на Вектор
- //Заполним матрицу случайными числами от -9 до 9
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0; j < matrix.length; j++) {
- matrix[i][j] = (int)(Math.random()*20 - 10);
- }
- }
- //Заполним вектор случайными числами от -9 до 9
- for (int i = 0; i < vector.length; i++) {
- vector[i] = (int)(Math.random()*20 - 10);
- }
- //(1) Умножение вектора на матрицу (1x1000 * 1000x1000 = массив 1x1000)
- Date timeBefore = new Date();
- for (int j = 0; j < matrix.length; j++) {
- int sum = 0;
- for (int i = 0; i < matrix.length; i++) {
- sum += vector[i] * matrix[i][j];
- }
- arrayVxM[j] = sum;
- }
- Date timeAfter = new Date();
- //Выведение времени, которое заняло умножение вектора на матрицу
- System.out.println("Время умножения вектора на матрицу в миллисекундах: " + (timeAfter.getTime() - timeBefore.getTime()));
- //(2) Умножение матрицы на вектор (1000x1000 * 1000x1 = массив 1000x1)
- // P.S. на самом деле размерность вектора - 1x1000, но мы его лишь мысленно перевернем,
- // а по факту просто будем обращаться к его элементам, представляя строку как столбец.
- timeBefore = new Date();
- for (int i = 0; i < matrix.length; i++) {
- int sum = 0;
- for (int j = 0; j < matrix.length; j++) {
- sum += matrix[i][j] * vector[j];
- }
- arrayMxV[i] = sum;
- }
- timeAfter = new Date();
- //Выведение времени, которое заняло умножение матрицы на вектор
- System.out.println("Время умножения матрицы на вектор в миллисекундах: " + (timeAfter.getTime() - timeBefore.getTime()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment