Формулисање проблема
Претпоставимо да треба да креирамо скуп целих случајних бројева без понављања у датом опсегу вредности. Примери у покрету:
- генерисање јединствених насумичних кодова за производе или кориснике
- додељивање људи задацима (сваки насумично са листе)
- пермутација речи у упиту за претрагу (здраво сео-схникам)
- играње лота итд.
Метод 1. Једноставан
За почетак, размотримо једноставну опцију: потребно је да добијемо насумични скуп од 10 целих бројева од 1 до 10. Коришћење функције уграђене у Екцел ИЗМЕЂУ СЛУЧАЈА (ИВИЦА ИЗМЕЂУ) јединственост није загарантована. Ако га унесете у ћелију листа и копирате је за 10 ћелија, онда се понављања лако могу десити:
Стога ћемо ићи другим путем.
Све верзије Екцел-а имају функцију РАНГ (РАНГ), намењен за рангирање или, другим речима, одређивање прве позиције броја у скупу. Највећи број на листи има ранг=1, други на врху има ранг=2, и тако даље.
Хајде да унесемо функцију у ћелију А2 СЛЦХИС (РАНД) без аргумената и копирајте формулу надоле 10 ћелија. Ова функција ће нам генерисати скуп од 10 случајних разломака од 0 до 1:
У следећој колони представљамо функцију РАНГда одредимо позицију на ранг листи за сваки добијени случајни број:
Добијамо у колони Б оно што смо желели - било који жељени број непоновљивих насумичних целих бројева од 1 до 10.
Чисто теоретски, може настати ситуација када СЛЦХИС ће нам дати два идентична случајна броја у колони А, њихови рангови ће се поклопити и добићемо понављање у колони Б. Међутим, вероватноћа оваквог сценарија је изузетно мала, с обзиром на чињеницу да је тачност 15 децимала.
Метод 2. Компликовано
Овај метод је мало компликованији, али користи само једну формулу низа. Рецимо да треба да направимо листу од 9 насумичних целих бројева који се не понављају у опсегу од 1 до 50 на листу.
Унесите следећу формулу у ћелију А2, кликните на крају Цтрл + Схифт + Ентер (да бисте је унели као формулу низа!) и копирајте формулу до жељеног броја ћелија:
Метод 3. Макро
И, наравно, можете решити проблем користећи програмирање у Висуал Басиц-у. У једном од старих чланака о насумичном узорковању, већ сам цитирао макро функцију Лотто низа, која производи потребан број насумичних бројева који се не понављају из датог интервала.
- Како израчунати број јединствених вредности у опсегу
- Случајни избор елемената са листе