Қайталанбайтын кездейсоқ сандар

Мәселені тұжырымдау

Мәндердің берілген диапазонында қайталанусыз бүтін кездейсоқ сандар жиынын жасау керек деп есептейік. Жолдағы мысалдар:

  • өнімдер немесе пайдаланушылар үшін бірегей кездейсоқ кодтарды жасау
  • адамдарды тапсырмаларға тағайындау (әрқайсысы тізімнен кездейсоқ)
  • іздеу сұрауындағы сөздерді ауыстыру (сәлем seo-shnikam)
  • лото ойнау және т.

1-әдіс. Қарапайым

Бастау үшін қарапайым опцияны қарастырайық: 10-ден 1-ға дейінгі 10 бүтін санның кездейсоқ жиынын алуымыз керек. Excel бағдарламасына енгізілген функцияны пайдалану ИШ АРАСЫНДА (АРАСЫ) бірегейлігіне кепілдік берілмейді. Егер сіз оны парақ ұяшығына енгізіп, оны 10 ұяшыққа көшірсеңіз, қайталаулар оңай болуы мүмкін:

Қайталанбайтын кездейсоқ сандар

Сондықтан біз басқа жолмен жүреміз.

Excel бағдарламасының барлық нұсқаларында функция бар RANK (RANG), рейтингке немесе басқаша айтқанда, жиынтықтағы санның жоғарғы орнын анықтауға арналған. Тізімдегі ең үлкен санның дәрежесі=1, жоғарыдағы екінші санның дәрежесі=2 және т.б.

Функцияны А2 ұяшығына енгізейік SLCHIS (RAND) аргументтерсіз және формуланы 10 ұяшыққа көшіріңіз. Бұл функция бізге 10-ден 0-ге дейінгі 1 кездейсоқ бөлшек сандар жиынын жасайды:

Қайталанбайтын кездейсоқ сандар

Келесі бағанда функцияны енгіземіз RANKәрбір алынған кездейсоқ сан бойынша рейтингтегі орынды анықтау үшін:

Қайталанбайтын кездейсоқ сандар

Біз В бағанында қалағанымызды аламыз – 1-ден 10-ға дейінгі қайталанбайтын кездейсоқ бүтін сандардың кез келген қажетті санын.

Таза теориялық тұрғыдан алғанда, жағдай туындауы мүмкін SLCHIS бізге А бағанында екі бірдей кездейсоқ сандарды береді, олардың дәрежелері сәйкес келеді және біз В бағанында қайталауды аламыз. Дегенмен, дәлдігі 15 ондық бөлшек екенін ескере отырып, мұндай сценарийдің ықтималдығы өте аз.

2-әдіс. Күрделі

Бұл әдіс сәл күрделірек, бірақ тек бір массив формуласын пайдаланады. Біз парақта 9-ден 1-ге дейінгі диапазондағы қайталанбайтын 50 кездейсоқ бүтін санның тізімін жасауымыз керек делік.

А2 ұяшығына келесі формуланы енгізіңіз, соңында шертіңіз Ctrl + Shift + Enter пернелер тіркесімі (оны массив формуласы ретінде енгізу үшін!) және формуланы ұяшықтардың қажетті санына дейін көшіріңіз:

Қайталанбайтын кездейсоқ сандар

3-әдіс. Макрос

Және, әрине, Visual Basic бағдарламасында бағдарламалау арқылы мәселені шешуге болады. Кездейсоқ іріктеу туралы ескі мақалалардың бірінде мен берілген аралықтан кездейсоқ қайталанбайтын сандардың қажетті санын шығаратын Lotto массивінің макро функциясын келтірдім.

  • Ауқымдағы бірегей мәндердің санын қалай санауға болады
  • Тізімнен элементтерді кездейсоқ таңдау

пікір қалдыру