Numerele aleatoare fără repetiții
Declarația problemei
Să presupunem că avem nevoie pentru a crea un întreg set de numere aleatoare, fără repetiții într-un anumit interval de valori. Exemple de mișcare:
- genera coduri aleatoare unice pentru produse sau utilizatori
- numirea persoanelor cu privire la sarcina (fiecare aleatoriu dintr-o listă)
- permutare de cuvinte în interogarea de căutare (SEO-Schnick hi)
- joc bingo, etc.
1. Metoda simplă
În primul rând, ia în considerare cea mai simplă opțiune: avem nevoie pentru a obține un set aleator de 10 numere întregi de la 1 la 10. Utilizarea încorporat în Excel funcții RANDBETWEEN (RANDBETWEEN) nu garantează unicitate. Dacă îl introduceți într-o celulă din foaia de lucru, și copiați până la 10 celule, se poate întâmpla cu ușurință reluări:
Așa că am merge în altă parte.
În toate versiunile de Excel este o funcție de RANK (RANG). destinate clasament sau cu alte cuvinte, determinarea unui număr de poziție de top din set. Pentru cel mai mare număr din lista de rang = 1, al doilea de sus are un rang = 2, etc.
Noi introducem functia celula A2 RAND (RAND), fără argumente și formula de copiere în jos la 10 celule. Această funcție ne va genera un set de 10 numere fractionare aleatoare între 0 și 1:
În coloana adiacentă, introducem funcția RANK. pentru a determina poziția în clasament pentru fiecare au primit numere aleatorii:
Obținem coloana din ceea ce au vrut - orice număr dorit de non-repetarea numere întregi aleatoare 1 - 10.
Teoretic, o situație poate apărea atunci când RAND ne va da două numere aleatoare identice din coloana A și rândurile lor se potrivesc și am repetat în coloana B. Cu toate acestea, probabilitatea acestui scenariu este extrem de scăzut. având în vedere faptul că precizia este de 15 zecimale.
Metoda 2: Dificil
Această metodă este puțin mai complicat, dar utilizează doar o singură formulă matrice. Să presupunem că avem nevoie pentru a crea o listă pe o foaie de 9-repetarea numere întregi aleatoare în intervalul 1-50.
Tastați următoarea formulă în celula A2, faceți clic pe la sfârșitul Ctrl + Shift + Enter (pentru a introduce ca o formulă matrice!) Și copiați formula în jos la numărul dorit de celule:
Metoda 3. Macro
Și, desigur, este posibil să se rezolve problema prin programare în Visual Basic. Într-unul din articolele vechi despre eșantion aleatoriu am dat deja macro matrice funcție Loto. care emite un număr necesar de non-repetarea numere aleatoare într-un interval predeterminat.