Случајни бројеви без понављања

Формулисање проблема

Претпоставимо да треба да креирамо скуп целих случајних бројева без понављања у датом опсегу вредности. Примери у покрету:

  • генерисање јединствених насумичних кодова за производе или кориснике
  • додељивање људи задацима (сваки насумично са листе)
  • пермутација речи у упиту за претрагу (здраво сео-схникам)
  • играње лота итд.

Метод 1. Једноставан

За почетак, размотримо једноставну опцију: потребно је да добијемо насумични скуп од 10 целих бројева од 1 до 10. Коришћење функције уграђене у Екцел ИЗМЕЂУ СЛУЧАЈА (ИВИЦА ИЗМЕЂУ) јединственост није загарантована. Ако га унесете у ћелију листа и копирате је за 10 ћелија, онда се понављања лако могу десити:

Случајни бројеви без понављања

Стога ћемо ићи другим путем.

Све верзије Екцел-а имају функцију РАНГ (РАНГ), намењен за рангирање или, другим речима, одређивање прве позиције броја у скупу. Највећи број на листи има ранг=1, други на врху има ранг=2, и тако даље.

Хајде да унесемо функцију у ћелију А2 СЛЦХИС (РАНД) без аргумената и копирајте формулу надоле 10 ћелија. Ова функција ће нам генерисати скуп од 10 случајних разломака од 0 до 1:

Случајни бројеви без понављања

У следећој колони представљамо функцију РАНГда одредимо позицију на ранг листи за сваки добијени случајни број:

Случајни бројеви без понављања

Добијамо у колони Б оно што смо желели - било који жељени број непоновљивих насумичних целих бројева од 1 до 10.

Чисто теоретски, може настати ситуација када СЛЦХИС ће нам дати два идентична случајна броја у колони А, њихови рангови ће се поклопити и добићемо понављање у колони Б. Међутим, вероватноћа оваквог сценарија је изузетно мала, с обзиром на чињеницу да је тачност 15 децимала.

Метод 2. Компликовано

Овај метод је мало компликованији, али користи само једну формулу низа. Рецимо да треба да направимо листу од 9 насумичних целих бројева који се не понављају у опсегу од 1 до 50 на листу.

Унесите следећу формулу у ћелију А2, кликните на крају Цтрл + Схифт + Ентер (да бисте је унели као формулу низа!) и копирајте формулу до жељеног броја ћелија:

Случајни бројеви без понављања

Метод 3. Макро

И, наравно, можете решити проблем користећи програмирање у Висуал Басиц-у. У једном од старих чланака о насумичном узорковању, већ сам цитирао макро функцију Лотто низа, која производи потребан број насумичних бројева који се не понављају из датог интервала.

  • Како израчунати број јединствених вредности у опсегу
  • Случајни избор елемената са листе

Ostavite komentar