Handahófskenndar tölur án endurtekningar

Mótun vandans

Gerum ráð fyrir að við þurfum að búa til mengi heiltölu handahófskenndar tölur án endurtekningar á tilteknu gildissviði. Dæmi á ferðinni:

  • búa til einstaka slembikóða fyrir vörur eða notendur
  • úthluta fólki í verkefni (hvert og eitt af handahófi af listanum)
  • umbreyting orða í leitarfyrirspurninni (halló seo-shnikam)
  • spila lottó o.s.frv.

Aðferð 1. Einföld

Til að byrja með skulum við íhuga einfaldan valmöguleika: við þurfum að fá tilviljunarkennt mengi af 10 heiltölum frá 1 til 10. Notum aðgerðina sem er innbyggð í Excel MILLI MÁLINS (KANT Á MILLI) sérstaða er ekki tryggð. Ef þú slærð það inn í blaðreit og afritar það niður 10 reiti, þá geta endurtekningar auðveldlega gerst:

Handahófskenndar tölur án endurtekningar

Þess vegna munum við fara aðra leið.

Allar útgáfur af Excel eru með aðgerð RANK (RANG), ætlað til röðunar eða, með öðrum orðum, að ákvarða efstu stöðu tölu í mengi. Stærsta talan á listanum hefur rank=1, sú næst efsta hefur rank=2, og svo framvegis.

Sláum inn fallið í reit A2 SLCHIS (RAND) án röksemda og afritaðu formúluna niður 10 reiti. Þessi aðgerð mun búa til safn af 10 handahófskenndum brotatölum frá 0 til 1:

Handahófskenndar tölur án endurtekningar

Í næsta dálki kynnum við fallið RANKtil að ákvarða stöðu í röðun fyrir hverja móttekna slembitölu:

Handahófskenndar tölur án endurtekningar

Við fáum í dálki B það sem við vildum - hvaða fjölda sem óskað er eftir af óendurteknum slembitölum frá 1 til 10.

Hreint fræðilega séð getur staða komið upp hvenær SLCHIS gefur okkur tvær eins handahófskenndar tölur í dálki A, raðir þeirra passa saman og við fáum endurtekningu í dálki B. Líkurnar á slíkri atburðarás eru hins vegar afar litlar í ljósi þess að nákvæmnin er 15 aukastafir.

Aðferð 2. Flókið

Þessi aðferð er aðeins flóknari, en notar aðeins eina fylkisformúlu. Segjum að við þurfum að búa til lista yfir 9 óendurteknar handahófskenndar heiltölur á bilinu 1 til 50 á blaði.

Sláðu inn eftirfarandi formúlu í reit A2, smelltu á lokin Ctrl + Shift + Sláðu inn (til að slá það inn sem fylkisformúlu!) og afritaðu formúluna niður í þann fjölda frumna sem þú vilt:

Handahófskenndar tölur án endurtekningar

Aðferð 3. Fjölvi

Og auðvitað geturðu leyst vandamálið með því að nota forritun í Visual Basic. Í einni af gömlu greinunum um slembiúrtak vitnaði ég nú þegar í Lottó fylki makrófallið, sem framleiðir nauðsynlegan fjölda af handahófi sem ekki er endurtekið úr tilteknu bili.

  • Hvernig á að telja fjölda einstaka gilda á bilinu
  • Tilviljunarkennt val á þáttum af lista

Skildu eftir skilaboð