Заполните матрицу 5×5 уникальными случайными целыми числами от 0 до 1000.

Перемешайте числа от 0 до 1000 алгоритмом Fisher–Yates, возьмите первые 25 и разбейте их на пять строк: повторы невозможны.

Короткий ответ

Что ответить на собеседовании

Перемешайте числа от 0 до 1000 алгоритмом Fisher–Yates, возьмите первые 25 и разбейте их на пять строк: повторы невозможны.

Подробный разбор

Ответ с пояснениями

Перемешайте числа от 0 до 1000 алгоритмом Fisher–Yates, возьмите первые 25 и разбейте их на пять строк: повторы невозможны.

Диапазон здесь включительный, всего 1001 число:

function randomMatrix() {
  const pool = Array.from({ length: 1001 }, (_, i) => i);
  for (let i = pool.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [pool[i], pool[j]] = [pool[j], pool[i]];
  }
  return Array.from({ length: 5 }, (_, row) =>
    pool.slice(row * 5, row * 5 + 5));
}

Math.random подходит для учебной задачи, но не для криптографии. Сложность перемешивания O(1001).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее