Случайни числа без повторения

Изявление на проблема

Да предположим, че трябва да се създаде цял набор от случайни числа без повторения в даден диапазон от стойности. Примери за движение:

  • генериране на уникални случайни кодове за стоки или потребители
  • назначаването на хора от задачата (всеки случаен принцип от списък)
  • пермутация на думите в заявката за търсене (SEO-Schnick здрасти)
  • играят бинго, и т.н.

1. опростен метод

Първо, помислете за простият вариант: ние трябва да се произволен набор от 10 числа от 1 до 10. С помощта на вградения в Excel функции RANDBETWEEN (RANDBETWEEN) не гарантира уникалност. Ако го въведете в клетка в работния лист и копиране до 10 клетки, тя може лесно да се случи повторения:

Случайни числа без повторения

Така че отиваме в другата посока.

Във всички версии на Excel е функция на RANK (звънна). предназначено за класиране или с други думи, определяне на най-добрите номера на позиции в комплекта. За най-голям брой в списък ранг = 1, втората върха има ранг = 2 и т.н.

Представяме функцията клетка А2 RAND (RAND) без аргументи и формула копие надолу до 10 клетки. Тази функция ще ни създаде набор от 10 случайни дробни числа между 0 и 1:

Случайни числа без повторения

В съседната колона, ще се въведе функцията на RANK. за да се определи позицията в класацията за всяка получена случайно число:

Случайни числа без повторения

Ние се получи колона в това, което искат - всеки желан брой неповтарящо случайни числа от 1 до 10.

Теоретично, една ситуация може да възникне, когато Ранд ще ни даде две еднакви случайни числа в колона А и техните редици съвпадат и сме повтарят в колона Б. Въпреки това, вероятността от този сценарий е изключително ниска. се има предвид факта, че точността е 15 знака след десетичната запетая.

Метод 2: Трудно

Този метод е малко по-сложно, но използва само една формула за масив. Да кажем, че ние трябва да се създаде списък на лист 9-повтаряне на случайни числа в интервала от 1 до 50.

Въведете следната формула в клетка A2, щракнете в края на Ctrl + Shift + Enter (за да го въведете като формула за масив!) И да копирате формулата до желания брой клетки:

Случайни числа без повторения

Метод 3. Macro

И, разбира се, е възможно да се реши проблема с програмиране в Visual Basic. В един от най-старите статиите за случайната извадка вече са дали макро функция Lotto масив. който подава необходимия брой без повтаряне на случайни числа в предварително определен интервал.

Сродни връзки