Slučajni brojevi bez ponavljanja

Formulacija problema

Pretpostavimo da trebamo kreirati skup cijelih nasumičnih brojeva bez ponavljanja u datom rasponu vrijednosti. Primjeri u pokretu:

  • generiranje jedinstvenih nasumičnih kodova za proizvode ili korisnike
  • dodjeljivanje ljudi zadacima (svaki nasumično sa liste)
  • permutacija riječi u upitu za pretraživanje (zdravo seo-shnikam)
  • igranje lota itd.

Metoda 1. Jednostavna

Za početak, razmotrimo jednostavnu opciju: trebamo dobiti nasumični skup od 10 cijelih brojeva od 1 do 10. Koristeći funkciju ugrađenu u Excel IZMEĐU SLUČAJA (RUB IZMEĐU) jedinstvenost nije zagarantovana. Ako ga unesete u ćeliju lista i kopirate je za 10 ćelija, onda se ponavljanja lako mogu dogoditi:

Slučajni brojevi bez ponavljanja

Stoga ćemo ići drugim putem.

Sve verzije Excel-a imaju funkciju RANK (RANG), namijenjen za rangiranje ili, drugim riječima, određivanje gornje pozicije broja u skupu. Najveći broj na listi ima rang=1, drugi na vrhu ima rang=2, i tako dalje.

Unesite funkciju u ćeliju A2 Slchis (RAND) bez argumenata i kopirajte formulu dolje 10 ćelija. Ova funkcija će nam generirati skup od 10 slučajnih razlomaka od 0 do 1:

Slučajni brojevi bez ponavljanja

U sljedećoj koloni predstavljamo funkciju RANKza određivanje pozicije na rang listi za svaki primljeni slučajni broj:

Slučajni brojevi bez ponavljanja

Dobijamo u koloni B ono što smo željeli – bilo koji željeni broj neponovljivih nasumičnih cijelih brojeva od 1 do 10.

Čisto teoretski, situacija može nastati kada Slchis će nam dati dva identična slučajna broja u koloni A, njihovi rangovi će se poklopiti i dobićemo ponavljanje u koloni B. Međutim, vjerovatnoća ovakvog scenarija je izuzetno mala s obzirom na činjenicu da je tačnost 15 decimala.

Metoda 2. Komplikovana

Ova metoda je malo složenija, ali koristi samo jednu formulu niza. Recimo da treba da kreiramo listu od 9 nasumičnih celih brojeva koji se ne ponavljaju u rasponu od 1 do 50 na listu.

Unesite sljedeću formulu u ćeliju A2, kliknite na kraju Ctrl + Shift + Enter (da je unesete kao formulu niza!) i kopirajte formulu na željeni broj ćelija:

Slučajni brojevi bez ponavljanja

Metoda 3. Makro

I, naravno, možete riješiti problem pomoću programiranja u Visual Basicu. U jednom od starih članaka o nasumičnom uzorkovanju, već sam citirao makro funkciju Lotto niza, koja proizvodi potreban broj nasumičnih brojeva koji se ne ponavljaju iz zadanog intervala.

  • Kako izbrojati broj jedinstvenih vrijednosti u rasponu
  • Slučajni odabir elemenata sa liste

Ostavite odgovor