A probléma megfogalmazása
Tételezzük fel, hogy egy adott értéktartományban ismétlődések nélküli egész véletlenszámok halmazát kell létrehoznunk. Példák útközben:
- egyedi véletlenszerű kódok generálása termékek vagy felhasználók számára
- emberek hozzárendelése feladatokhoz (mindegyik véletlenszerűen a listából)
- szavak permutációja a keresési lekérdezésben (hello seo-shnikam)
- lottózni stb.
1. módszer. Egyszerű
Kezdésként vegyünk egy egyszerű lehetőséget: 10 egész számból álló véletlenszerű halmazt kell kapnunk 1-től 10-ig. Az Excelbe épített függvény használata AZ ÜGY KÖZÖTT (ÉL KÖZÖTT) az egyediség nem garantált. Ha beírja egy lapcellába, és lemásolja 10 cellával, akkor könnyen előfordulhat ismétlődés:
Ezért a másik irányba fogunk menni.
Az Excel minden verziója rendelkezik funkcióval RANG (CSENGETETT), amely rangsorolásra vagy más szóval egy szám felső pozíciójának meghatározására szolgál egy halmazban. A lista legnagyobb számának rang=1, az élen lévő másodiknak rang=2 stb.
Írjuk be a függvényt az A2 cellába SLCHIS (RAND) argumentumok nélkül, és másolja le a képletet 10 cellával. Ez a függvény 10 véletlenszerű törtszámot generál 0 és 1 között:
A következő oszlopban bemutatjuk a függvényt RANGaz egyes kapott véletlen számok rangsorban elfoglalt pozíciójának meghatározásához:
A B oszlopban azt kapjuk, amit akartunk – tetszőleges számú nem ismétlődő véletlenszerű egész szám 1-től 10-ig.
Pusztán elméletileg olyan helyzet állhat elő, amikor SLCHIS két azonos véletlenszámot ad nekünk az A oszlopban, ezek sorrendje megegyezik, és a B oszlopban ismétlést kapunk. Azonban egy ilyen forgatókönyv valószínűsége rendkívül kicsi, tekintettel arra, hogy a pontosság 15 tizedesjegy.
Módszer 2. Bonyolult
Ez a módszer valamivel bonyolultabb, de csak egy tömbképletet használ. Tegyük fel, hogy egy lapon létre kell hoznunk egy listát 9 nem ismétlődő véletlenszerű egész számból 1 és 50 között.
Írja be a következő képletet az A2 cellába, kattintson a végén Ctrl + Shift + Enter (hogy tömbképletként írja be!), és másolja le a képletet a kívánt számú cellára:
3. módszer. Makró
És természetesen megoldhatja a problémát a Visual Basic programozásával. Az egyik régi, véletlenszerű mintavételről szóló cikkben már idéztem a Lotto tömbmakró függvényt, amely egy adott intervallumból állítja elő a szükséges számú véletlenszerű, nem ismétlődő számot.
- Hogyan kell megszámolni az egyedi értékek számát egy tartományban
- Elemek véletlenszerű kiválasztása egy listából