Mga random na numero nang walang pag-uulit

Pagbubuo ng problema

Ipagpalagay natin na kailangan nating lumikha ng isang hanay ng mga integer na random na numero nang walang pag-uulit sa isang ibinigay na hanay ng mga halaga. Mga halimbawa on the go:

  • pagbuo ng mga natatanging random na code para sa mga produkto o user
  • pagtatalaga ng mga tao sa mga gawain (bawat isa ay random mula sa listahan)
  • permutasyon ng mga salita sa query sa paghahanap (hello seo-shnikam)
  • naglalaro ng lotto atbp.

Paraan 1. Simple

Upang magsimula, isaalang-alang natin ang isang simpleng opsyon: kailangan nating makakuha ng random na hanay ng 10 integer mula 1 hanggang 10. Gamit ang function na binuo sa Excel PAGITAN NG KASO (EDGE BETWEEN) ang pagiging natatangi ay hindi ginagarantiyahan. Kung ilalagay mo ito sa isang sheet cell at kopyahin ito sa 10 mga cell, pagkatapos ay madaling mangyari ang mga pag-uulit:

Mga random na numero nang walang pag-uulit

Samakatuwid, tayo ay pupunta sa ibang paraan.

Ang lahat ng mga bersyon ng Excel ay may isang function RANGGO (RANG), nilayon para sa pagraranggo o, sa madaling salita, pagtukoy sa pinakamataas na posisyon ng isang numero sa isang set. Ang pinakamalaking numero sa listahan ay may ranggo=1, ang pangalawa sa itaas ay may ranggo=2, at iba pa.

Ipasok natin ang function sa cell A2 SLCHIS (RAND) nang walang mga argumento at kopyahin ang formula pababa sa 10 mga cell. Ang function na ito ay bubuo sa amin ng isang set ng 10 random na fractional na numero mula 0 hanggang 1:

Mga random na numero nang walang pag-uulit

Sa susunod na hanay ipinakilala namin ang function RANGGOupang matukoy ang posisyon sa ranggo para sa bawat natanggap na random na numero:

Mga random na numero nang walang pag-uulit

Nakukuha namin sa column B ang gusto namin – anumang gustong bilang ng hindi umuulit na random integer mula 1 hanggang 10.

Puro theoretically, maaaring lumitaw ang isang sitwasyon kapag SLCHIS ay magbibigay sa amin ng dalawang magkaparehong random na numero sa column A, magtutugma ang kanilang mga ranggo at makakakuha tayo ng pag-uulit sa column B. Gayunpaman, napakaliit ng probabilidad ng naturang senaryo, dahil sa katotohanan na ang katumpakan ay 15 decimal na lugar.

Paraan 2. Kumplikado

Ang pamamaraang ito ay bahagyang mas kumplikado, ngunit gumagamit lamang ng isang array formula. Sabihin nating kailangan nating gumawa ng listahan ng 9 na hindi umuulit na random na integer sa hanay mula 1 hanggang 50 sa isang sheet.

Ipasok ang sumusunod na formula sa cell A2, i-click sa dulo Ctrl + Shift + Enter (upang ipasok ito bilang isang array formula!) at kopyahin ang formula hanggang sa nais na bilang ng mga cell:

Mga random na numero nang walang pag-uulit

Paraan 3. Macro

At, siyempre, maaari mong lutasin ang problema gamit ang programming sa Visual Basic. Sa isa sa mga lumang artikulo tungkol sa random sampling, nabanggit ko na ang Lotto array macro function, na gumagawa ng kinakailangang bilang ng mga random na hindi umuulit na numero mula sa isang naibigay na agwat.

  • Paano mabibilang ang bilang ng mga natatanging halaga sa isang hanay
  • Random na pagpili ng mga elemento mula sa isang listahan

Mag-iwan ng Sagot