Случайни числа без повторения
Изявление на проблема
Да предположим, че трябва да се създаде цял набор от случайни числа без повторения в даден диапазон от стойности. Примери за движение:
- генериране на уникални случайни кодове за стоки или потребители
- назначаването на хора от задачата (всеки случаен принцип от списък)
- пермутация на думите в заявката за търсене (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 масив. който подава необходимия брой без повтаряне на случайни числа в предварително определен интервал.