• Как реализовать генерацию пар чисел без повторений?

    nikolayshabalin
    @nikolayshabalin
    Автор профессиональных курсов в HTML Academy
    function generateNumberPairs(min, max, count) {
      if (max - min + 1 < count * 2) {
        console.error('Невозможно создать запрошенное количество пар без повторений в данном диапазоне.');
        return [];
      }
    
      const numbers = [];
      const pairs = [];
    
      // Создаем массив чисел в заданном диапазоне
      for (let i = min; i <= max; i++) {
        numbers.push(i);
      }
    
      // Перемешиваем массив случайным образом
      for (let i = numbers.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [numbers[i], numbers[j]] = [numbers[j], numbers[i]];
      }
    
      // Формируем пары чисел
      for (let i = 0; i < count; i++) {
        const pair = [numbers[i * 2], numbers[i * 2 + 1]];
        pairs.push(pair);
      }
    
      return pairs;
    }
    
    // Пример использования
    const pairs = generateNumberPairs(10, 30, 10);
    console.log(pairs);


    В этом примере функция generateNumberPairs принимает минимальное значение min, максимальное значение max и количество пар чисел count, которое нужно сгенерировать. Если заданный диапазон недостаточно широк для создания запрошенного количества пар без повторений, функция выведет сообщение об ошибке и вернет пустой массив.
    Ответ написан
    Комментировать