Ewekansige getalle sonder herhalings

Formulering van die probleem

Kom ons neem aan dat ons 'n stel heelgetal ewekansige getalle moet skep sonder herhalings in 'n gegewe reeks waardes. Voorbeelde onderweg:

  • generering van unieke ewekansige kodes vir produkte of gebruikers
  • om mense aan take toe te wys (elkeen lukraak uit die lys)
  • permutasie van woorde in die soektog (hallo seo-shnikam)
  • speel lotto ens.

Metode 1. Eenvoudig

Om mee te begin, laat ons 'n eenvoudige opsie oorweeg: ons moet 'n ewekansige stel van 10 heelgetalle van 1 tot 10 kry. Gebruik die funksie wat in Excel ingebou is TUSSEN DIE SAAK (RAND TUSSEN) uniekheid word nie gewaarborg nie. As jy dit in 'n bladsel invoer en dit na 10 selle kopieer, kan herhalings maklik gebeur:

Ewekansige getalle sonder herhalings

Daarom sal ons anderpad gaan.

Alle weergawes van Excel het 'n funksie RANK (BELANG), bedoel vir rangorde of, met ander woorde, die bepaling van die boonste posisie van 'n getal in 'n stel. Die grootste getal in die lys het rank=1, die tweede in die top het rank=2, ensovoorts.

Kom ons voer die funksie in sel A2 in SLCHIS (RAND) sonder argumente en kopieer die formule 10 selle af. Hierdie funksie sal vir ons 'n stel van 10 ewekansige breukgetalle van 0 tot 1 genereer:

Ewekansige getalle sonder herhalings

In die volgende kolom stel ons die funksie bekend RANKom die posisie in die rangorde vir elke ontvang ewekansige getal te bepaal:

Ewekansige getalle sonder herhalings

Ons kry in kolom B wat ons wou hê – enige gewenste aantal nie-herhalende ewekansige heelgetalle van 1 tot 10.

Suiwer teoreties kan 'n situasie ontstaan ​​wanneer SLCHIS vir ons twee identiese ewekansige getalle in kolom A sal gee, sal hul rangorde ooreenstem en ons sal 'n herhaling in kolom B kry. Die waarskynlikheid van so 'n scenario is egter uiters klein, gegewe die feit dat die akkuraatheid 15 desimale plekke is.

Metode 2. Ingewikkeld

Hierdie metode is effens meer ingewikkeld, maar gebruik slegs een skikkingsformule. Kom ons sê ons moet 'n lys van 9 nie-herhalende ewekansige heelgetalle in die reeks van 1 tot 50 op 'n blad skep.

Voer die volgende formule in sel A2 in, klik aan die einde Ctrl + Shift + Enter (om dit as 'n skikkingsformule in te voer!) en kopieer die formule na die verlangde aantal selle:

Ewekansige getalle sonder herhalings

Metode 3. Makro

En natuurlik kan jy die probleem oplos deur programmering in Visual Basic te gebruik. In een van die ou artikels oor ewekansige steekproefneming het ek reeds die Lotto-skikking-makrofunksie aangehaal, wat die vereiste aantal ewekansige nie-herhalende getalle uit 'n gegewe interval produseer.

  • Hoe om die aantal unieke waardes in 'n reeks te tel
  • Ewekansige keuse van elemente uit 'n lys

Lewer Kommentaar