Случайни числа без повторения
Изявление на проблема
Да предположим, че трябва да се създаде цял набор от случайни числа без повторения в даден диапазон от стойности. Примери за движение:
- генериране на уникални случайни кодове за стоки или потребители
- назначаването на хора от задачата (всеки случаен принцип от списък)
- пермутация на думите в заявката за търсене (SEO-Schnick здрасти)
- играят бинго, и т.н.
1. опростен метод
Първо, помислете за простият вариант: ние трябва да се произволен набор от 10 числа от 1 до 10. С помощта на вградения в Excel функции RANDBETWEEN (RANDBETWEEN) не гарантира уникалност. Ако го въведете в клетка в работния лист и копиране до 10 клетки, тя може лесно да се случи повторения:
![Случайни числа без повторения (трикове) Случайни числа без повторения](https://webp.images-on-off.com/25/513/437x282_pgowylxyf5r70u4a5c0j.webp)
Така че отиваме в другата посока.
Във всички версии на Excel е функция на RANK (звънна). предназначено за класиране или с други думи, определяне на най-добрите номера на позиции в комплекта. За най-голям брой в списък ранг = 1, втората върха има ранг = 2 и т.н.
Представяме функцията клетка А2 RAND (RAND) без аргументи и формула копие надолу до 10 клетки. Тази функция ще ни създаде набор от 10 случайни дробни числа между 0 и 1:
![Случайни числа без повторения (брой) Случайни числа без повторения](https://webp.images-on-off.com/25/513/405x325_nb8io13tz35ju5sjdbn2.webp)
В съседната колона, ще се въведе функцията на RANK. за да се определи позицията в класацията за всяка получена случайно число:
![Случайни числа без повторение (CDF) Случайни числа без повторения](https://webp.images-on-off.com/25/513/478x326_9o3k1xyagld8l3cam8yy.webp)
Ние се получи колона в това, което искат - всеки желан брой неповтарящо случайни числа от 1 до 10.
Теоретично, една ситуация може да възникне, когато Ранд ще ни даде две еднакви случайни числа в колона А и техните редици съвпадат и сме повтарят в колона Б. Въпреки това, вероятността от този сценарий е изключително ниска. се има предвид факта, че точността е 15 знака след десетичната запетая.
Метод 2: Трудно
Този метод е малко по-сложно, но използва само една формула за масив. Да кажем, че ние трябва да се създаде списък на лист 9-повтаряне на случайни числа в интервала от 1 до 50.
Въведете следната формула в клетка A2, щракнете в края на Ctrl + Shift + Enter (за да го въведете като формула за масив!) И да копирате формулата до желания брой клетки:
![Случайни числа без повторение (не-повтарящи случайни числа) Случайни числа без повторения](https://webp.images-on-off.com/25/513/1054x313_sn54tcz4w5phfh5v9vhj.webp)
Метод 3. Macro
И, разбира се, е възможно да се реши проблема с програмиране в Visual Basic. В един от най-старите статиите за случайната извадка вече са дали макро функция Lotto масив. който подава необходимия брой без повтаряне на случайни числа в предварително определен интервал.