Nejauši skaitļi bez atkārtojumiem

Problēmas formulēšana

Pieņemsim, ka mums ir jāizveido veselu nejaušu skaitļu kopa bez atkārtojumiem noteiktā vērtību diapazonā. Piemēri ceļā:

  • unikālu nejaušu kodu ģenerēšana produktiem vai lietotājiem
  • cilvēku piešķiršana uzdevumiem (katrs nejauši no saraksta)
  • vārdu maiņa meklēšanas vaicājumā (sveiki, seo-shnikam)
  • spēlē loto utt.

1. metode. Vienkārša

Vispirms apsveriet vienkāršu iespēju: mums ir jāiegūst nejauša 10 veselu skaitļu kopa no 1 līdz 10. Izmantojot programmā Excel iebūvēto funkciju STARP LIETAS (mala STARP) unikalitāte nav garantēta. Ja ievadāt to lapas šūnā un nokopējat par 10 šūnām, atkārtojumi var viegli notikt:

Nejauši skaitļi bez atkārtojumiem

Tāpēc mēs iesim citu ceļu.

Visām Excel versijām ir funkcija RANK (ZVANĪJA), kas paredzēts ranžēšanai vai, citiem vārdiem sakot, skaitļa augstākās pozīcijas noteikšanai komplektā. Saraksta lielākajam skaitam ir rank=1, augšgala otrajam rangs=2 un tā tālāk.

Ievadīsim funkciju šūnā A2 SLCHIS (RAND) bez argumentiem un kopējiet formulu par 10 šūnām. Šī funkcija mums ģenerēs 10 nejaušu daļskaitļu kopu no 0 līdz 1:

Nejauši skaitļi bez atkārtojumiem

Nākamajā slejā mēs iepazīstinām ar funkciju RANKlai noteiktu vietu reitingā katram saņemtajam nejaušajam skaitlim:

Nejauši skaitļi bez atkārtojumiem

B kolonnā iegūstam to, ko vēlējāmies – jebkuru vēlamo neatkārtojamo nejaušo veselo skaitļu skaitu no 1 līdz 10.

Tīri teorētiski var rasties situācija, kad SLCHIS iedos mums divus identiskus nejaušus skaitļus A ailē, to rindas sakritīs un mēs iegūsim atkārtojumu ailē B. Tomēr šāda scenārija iespējamība ir ārkārtīgi maza, ņemot vērā faktu, ka precizitāte ir 15 zīmes aiz komata.

2. metode. Sarežģīti

Šī metode ir nedaudz sarežģītāka, taču tajā tiek izmantota tikai viena masīva formula. Pieņemsim, ka lapā ir jāizveido saraksts ar 9 neatkārtotiem nejaušiem veseliem skaitļiem diapazonā no 1 līdz 50.

Ievadiet šādu formulu šūnā A2, noklikšķiniet beigās Ctrl + Shift + Enter (lai ievadītu to kā masīva formulu!) un kopējiet formulu līdz vajadzīgajam šūnu skaitam:

Nejauši skaitļi bez atkārtojumiem

3. metode. Makro

Un, protams, jūs varat atrisināt problēmu, izmantojot programmēšanu programmā Visual Basic. Vienā no vecajiem rakstiem par izlases ņemšanu es jau minēju Lotto masīva makro funkciju, kas no noteiktā intervāla ģenerē nepieciešamo nejaušo neatkārtojamo skaitļu skaitu.

  • Kā saskaitīt unikālo vērtību skaitu diapazonā
  • Nejauša elementu atlase no saraksta

Atstāj atbildi