Ausazko zenbakiak errepikatu gabe

Arazoaren formulazioa

Demagun balio sorta jakin batean errepikatu gabe ausazko zenbaki osoen multzo bat sortu behar dugula. Adibideak edonon:

  • produktu edo erabiltzaileentzako ausazko kode bakarrak sortzea
  • pertsonak zereginak esleitzea (bakoitza zerrendatik ausaz)
  • Bilaketa-kontsultako hitzen permutazioa (kaixo seo-shnikam)
  • loteria etab.

Metodoa 1. Sinplea

Hasteko, har dezagun aukera sinple bat: 10etik 1era arteko 10 zenbaki osoko ausazko multzo bat lortu behar dugu. Excel-en integratutako funtzioa erabiliz. KASU ARTEAN (ARTEKO ERTZA) berezitasuna ez dago bermatuta. Orri-gelaxka batean sartzen baduzu eta 10 gelaxka kopiatzen badituzu, errepikapenak erraz gerta daitezke:

Ausazko zenbakiak errepikatu gabe

Horregatik, beste bide batetik joango gara.

Excel-en bertsio guztiek funtzio bat dute RANK (RANG), sailkapena egiteko edo, bestela esanda, multzo bateko zenbaki baten goiko posizioa zehazteko xedea. Zerrendako zenbaki handienak rank=1 du, goiko bigarrenak rank=2 du, eta abar.

Sar dezagun funtzioa A2 gelaxkan SLCHIS (RAND) argumenturik gabe eta kopiatu formula 10 gelaxka behera. Funtzio honek 10tik 0era ausazko 1 zenbaki zatikiko multzoa sortuko digu:

Ausazko zenbakiak errepikatu gabe

Hurrengo zutabean funtzioa aurkezten dugu RANKjasotako ausazko zenbaki bakoitzaren sailkapeneko posizioa zehazteko:

Ausazko zenbakiak errepikatu gabe

B zutabean lortuko dugu nahi genuena: errepikatzen ez diren ausazko zenbaki osoak 1etik 10era.

Teoriko hutsean, egoera bat sor daiteke noiz SLCHIS A zutabean ausazko bi zenbaki berdin emango dizkigu, haien mailak bat etorriko dira eta B zutabean errepikapena lortuko dugu. Hala ere, halako eszenatoki baten probabilitatea oso txikia da, zehaztasuna 15 zifra hamartarkoa dela kontuan hartuta.

2. metodoa. Konplikatua

Metodo hau apur bat konplexuagoa da, baina array formula bakarra erabiltzen du. Demagun orri batean 9etik 1era bitarteko ausazko osorik errepikatzen ez diren 50 zerrenda bat sortu behar dugula.

Sartu formula hau A2 gelaxkan, egin klik amaieran Ktrl + Shift + Sartu (array formula gisa sartzeko!) eta kopiatu formula nahi duzun gelaxka-kopururaino:

Ausazko zenbakiak errepikatu gabe

3. metodoa. Makroa

Eta, noski, arazoa konpon dezakezu Visual Basic-en programazioa erabiliz. Ausazko laginketari buruzko artikulu zaharretako batean, Lotto array makro-funtzioa aipatu nuen, tarte jakin batetik errepikatzen ez diren ausazko zenbaki kopurua sortzen duena.

  • Nola zenbatu barruti bateko balio esklusiboen kopurua
  • Zerrenda bateko elementuak ausaz hautatzea

Utzi erantzun bat