Rhifau ar hap heb ailddarllediadau

Ffurfio'r broblem

Gadewch i ni dybio bod angen i ni greu set o haprifau cyfanrif heb ailadrodd mewn ystod benodol o werthoedd. Enghreifftiau wrth fynd:

  • cynhyrchu codau ar hap unigryw ar gyfer cynhyrchion neu ddefnyddwyr
  • aseinio pobl i dasgau (pob un ar hap o'r rhestr)
  • newid geiriau yn yr ymholiad chwilio (helo seo-shnikam)
  • chwarae lotto ac ati.

Dull 1. Syml

I ddechrau, gadewch i ni ystyried opsiwn syml: mae angen i ni gael set ar hap o 10 cyfanrif o 1 i 10. Gan ddefnyddio'r swyddogaeth sydd wedi'i chynnwys yn Excel RHWNG YR ACHOS (YMYL RHWNG) nid yw unigrywiaeth wedi'i warantu. Os rhowch ef mewn cell ddalen a'i gopïo i lawr 10 cell, yna gall ailadroddiadau ddigwydd yn hawdd:

Rhifau ar hap heb ailddarllediadau

Felly, awn y ffordd arall.

Mae gan bob fersiwn o Excel swyddogaeth RANK (ANG), a fwriedir ar gyfer graddio neu, mewn geiriau eraill, pennu safle uchaf rhif mewn set. Mae gan y rhif mwyaf yn y rhestr reng = 1, mae gan yr ail ar y brig safle = 2, ac yn y blaen.

Gadewch i ni fynd i mewn i'r swyddogaeth yng nghell A2 SLCHIS (RAND) heb ddadleuon a chopïwch y fformiwla i lawr 10 cell. Bydd y swyddogaeth hon yn cynhyrchu set o 10 rhif ffracsiynol hap o 0 i 1 i ni:

Rhifau ar hap heb ailddarllediadau

Yn y golofn nesaf rydym yn cyflwyno'r swyddogaeth RANKi benderfynu ar y safle yn y safle ar gyfer pob rhif ar hap a dderbyniwyd:

Rhifau ar hap heb ailddarllediadau

Rydyn ni'n cael yng ngholofn B yr hyn roedden ni ei eisiau - unrhyw nifer dymunol o gyfanrifau hap nad ydyn nhw'n ailadrodd o 1 i 10.

Yn ddamcaniaethol yn unig, gall sefyllfa godi pan SLCHIS yn rhoi dau rif ar hap union yr un fath i ni yng ngholofn A, bydd eu rhengoedd yn cyfateb a byddwn yn cael eu hailadrodd yng ngholofn B. Fodd bynnag, mae'r tebygolrwydd y bydd senario o'r fath yn fach iawn, o ystyried y ffaith mai 15 lle degol yw'r cywirdeb.

Dull 2. Cymhleth

Mae'r dull hwn ychydig yn fwy cymhleth, ond mae'n defnyddio un fformiwla arae yn unig. Gadewch i ni ddweud bod angen i ni greu rhestr o 9 cyfanrif hap nad yw'n ailadrodd yn yr ystod o 1 i 50 ar ddalen.

Rhowch y fformiwla ganlynol yng nghell A2, cliciwch ar y diwedd Ctrl + Shift + Enter (i'w nodi fel fformiwla arae!) a chopïwch y fformiwla i lawr i'r nifer o gelloedd a ddymunir:

Rhifau ar hap heb ailddarllediadau

Dull 3. Macro

Ac, wrth gwrs, gallwch chi ddatrys y broblem gan ddefnyddio rhaglennu yn Visual Basic. Yn un o'r hen erthyglau am samplu ar hap, cyfeiriais eisoes at swyddogaeth macro arae Lotto, sy'n cynhyrchu'r nifer gofynnol o rifau nad ydynt yn ailadrodd ar hap o gyfwng penodol.

  • Sut i gyfrif nifer y gwerthoedd unigryw mewn ystod
  • Detholiad ar hap o elfennau o restr

Gadael ymateb