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

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

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

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

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

За почеток, да разгледаме едноставна опција: треба да добиеме случаен сет од 10 цели броеви од 1 до 10. Користење на функцијата вградена во Excel МЕЃУ СЛУЧАЈОТ (РАБ ПОМЕЃУ) уникатноста не е загарантирана. Ако го внесете во ќелија на лист и го ископирате 10 ќелии, тогаш лесно може да се случат повторувања:

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

Затоа, ќе одиме на друг начин.

Сите верзии на Excel имаат функција РАНГ (RANG), наменет за рангирање или, со други зборови, одредување на горната позиција на број во множество. Најголемиот број во листата има ранг=1, вториот на врвот има ранг=2 итн.

Ајде да ја внесеме функцијата во ќелијата А2 SLCHIS (РАНД) без аргументи и копирајте ја формулата надолу 10 ќелии. Оваа функција ќе ни генерира збир од 10 случајни дробни броеви од 0 до 1:

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

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

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

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

Чисто теоретски, може да се појави ситуација кога SLCHIS ќе ни даде два идентични случајни броја во колоната А, нивните редови ќе се поклопат и ќе добиеме повторување во колоната Б. Сепак, веројатноста за такво сценарио е исклучително мала, со оглед на фактот дека точноста е 15 децимални места.

Метод 2. Комплицирано

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

Внесете ја следнава формула во ќелијата А2, кликнете на крајот Ctrl + Shift + Enter (за да ја внесете како формула за низа!) и копирајте ја формулата до саканиот број на ќелии:

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

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

И, се разбира, можете да го решите проблемот користејќи програмирање во Visual Basic. Во една од старите написи за случајно земање примероци, веќе ја наведов макро функцијата Lotto array, која го произведува потребниот број на случајни броеви кои не се повторуваат од даден интервал.

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

Оставете Одговор