Тізімнен кездейсоқ таңдау

Кез келген тізімді — есімдерді, тапсырмаларды немесе идеяларды — енгізіңіз де, құралға әділ таңдау жасауға мүмкіндік беріңіз. Ұтыс ойыны браузерде жұмыс істейді, деректер құрылғыңыздан ешқайда кетпейді.

Таңдау үшін «Жасау» түймесін басыңыз
Бөлгіш автоматты түрде анықталады, бірақ оны төменде таңдай аласыз.
Кеңейтілген опциялар

Ұтыс ойынының жеңімпазын анықтау, оқушыны тақтаға шақыру немесе дүкенге кім баратынын шешу қажет пе? Бұл тегін онлайн құрал сіз енгізген кез келген тізімнен әділ әрі кездейсоқ таңдау жасайды. Нұсқаларыңызды «Элементтер» өрісіне — әрқайсысын жаңа жолға немесе үтірмен бөліп — енгізіңіз, «Саны» өрісінде қанша нәтиже керектігін көрсетіңіз де, «Жасау» түймесін басыңыз. Тізім кемінде екі элементтен тұруы керек және оған ұзындығы 200 таңбаға дейінгі 1000 жазба сыяды.

Әрбір таңдау тікелей браузеріңізде, операциялық жүйеңізден криптографиялық қауіпсіз кездейсоқ мәндерді алатын Web Crypto API (crypto.getRandomValues) көмегімен жасалады. Сіздің тізіміңіз ешқашан серверге жіберілмейді, сақталмайды және оны біз ешқашан көрмейміз — бұл басқа генераторларға қарағанда мұнда өте маңызды, өйткені адамдар көбінесе клиенттер тізімін, сынып журналын немесе әріптестерінің есімдерін енгізеді. «Файлдан жүктеңіз» түймесі де осы уәдені орындайды: браузеріңіз файлды өзі оқып, өрісті жергілікті деңгейде толтырады, интернетке ештеңе жүктелмейді.

Баптаулар адамдар нақты қолданатын тізімдерге бейімделген. «Бөлгіш» әдепкі бойынша «Автоматты» режимінде тұрады, ол жаңа жолдар мен үтірлерді өзі ажыратады, сондықтан кестеден, хаттан немесе құжаттан көшірілген тізім қосымша пішімдеусіз жұмыс істейді. Егер деректеріңізде әртүрлі пішімдер аралас болса, оны «Жаңа жол», «Үтір» немесе «Бос орын» етіп бекітіңіз. Сонымен қатар, «Бос орын» әрқашан саналы таңдау болып табылады және ешқашан автоматты түрде қолданылмайды, өйткені толық аты-жөндер сияқты элементтердің өз ішінде бос орындар болады және олар бойынша автоматты бөлу тізімдерді бұзар еді. «Саны» өрісі 1-ден 100-ге дейін қанша элемент таңдалуы керектігін анықтайды. 200 қатысушының ішінен үш жеңімпазды таңдамақсыз ба? Қатысушыларды енгізіңіз, «Саны» мәнін 3-ке қойып, «Жасау» түймесін басыңыз. Екі баптау тек саны 2 немесе одан көп болғанда ғана іске қосылады және оған дейін сұр болып тұрады: бір элементтің екі рет таңдалуын реттейтін «Қайталанбайтын» қосқышы, және нәтижелердің қалай бөлінетінін анықтайтын «Шығыс форматы» («Әрқайсысы жаңа жолда», «Бос орынмен бөлінген» немесе «Үтірмен бөлінген»).

«Элементтер» өрісінің ішіндегі түймелер қатары басқа жерде жасауға тура келетін өңдеу жұмыстарын атқарады. «Файлдан жүктеңіз» түймесі тізімді тікелей мәтіндік немесе CSV файлынан тартады. «Араластыру» өрістегі жазбалардың ретін өзгертеді, «Сұрыптау» оларды әліпби ретімен және табиғи сандық ретпен орналастырады, ал екінші рет басу оны керісінше айналдырады, «Тазалау» болса өрісті толығымен босатады. «Үлгі деректермен толтыру» түймесі құралды бір рет басу арқылы сынап көру үшін қысқа тест тізімін енгізеді, ал «Мазмұнға сәйкестендіру үшін кеңейтіңіз» ұзын тізімді толық көрсету үшін өрісті ашады, «Әдепкі өлшемге жию» оны бастапқы қалпына қайтарады. Нәтиженің астындағы «Барлығын көшіру» әрбір таңдауды алмасу буферіне салады, «Файлға сақтау» оларды құрылғыңызға сақтайды, ал «Тарих» соңғы 10 ұтыс ойынын браузеріңізде сақтайды, сондықтан алдыңғы нәтиже қолжетімді болып қалады.

Таңдау іс жүзінде қалай жасалады? Сіз «Жасау» түймесін басқанда, бет JavaScript-тің жалған кездейсоқ Math.random() функциясына сүйенудің орнына, crypto.getRandomValues арқылы браузерден кездейсоқ мәндерді сұрайды және оларды тізімдегі орындарды таңдау үшін қолданады. Таза 32 биттік мәнді орынға айналдыру — көптеген құралдардың білдіртпей қателесетін жері: бұл мәнді тізім ұзындығына бөліп, қалдығын (модулін) алу ең қарапайым тәсіл сияқты көрінгенімен, ол біржақты. Себебі, егер 2^32 саны тізім ұзындығына қалдықсыз бөлінбесе, тізімнің басындағы элементтер басқаларға қарағанда сәл жиірек түседі. Бұл кемшілік модульдік ауытқу (modulo bias) деп аталады және ол тек теориялық емес, өлшенетін шама. Бұл құрал оның орнына тізім ұзындығының ең үлкен нақты еселігінен асатын кез келген мәнді алып тастап, қайтадан таңдайды — бұл әдіс қабылдамау іріктеуі (rejection sampling) ретінде белгілі. Ол фондық режимде бірнеше қосымша таңдауды қажет етеді, бірақ шамамен емес, нақты кепілдік береді. Тізімдегі орын ештеңені өзгертпейді: бірінші және соңғы элементтер әрбір ұтыс ойынында бірдей ықтималдыққа ие.

«Қайталанбайтын» режимі ұтыс ойынының екі мүлдем бөлек түрін ажыратады және статистикада олардың әрқайсысының өз атауы бар. Ол қосылып тұрғанда, құрал тізімнің көшірмесін Fisher-Yates алгоритмімен араластырып, элементтерді жоғарыдан алады — дәл қалпақтан қағаздарды қайта салмай суырып алғанмен бірдей, сондықтан ешкім екі рет таңдалмайды және сол өлшемдегі әрбір топтың түсу ықтималдығы бірдей. Бұл қайтарусыз іріктеу (sampling without replacement) деп аталады және жүлдегерлерді, командаларды немесе кезекті анықтау үшін дәл осы қажет. Ол өшірулі болғанда, әрбір таңдау бүкіл тізімнен тәуелсіз жасалады, сондықтан бір элемент бірнеше рет түсуі мүмкін — бұл қайтарумен іріктеу (sampling with replacement), ол барлығы әр кезеңде қатыса беретін кезде, мысалы, қайталанбалы ұтыс ойындарында немесе жылдам статистикалық іріктеуде қажет. Бұл режимдердің ешқайсысы екіншісінен әділірек емес; олар жай ғана әртүрлі қажеттіліктерге жауап береді.

Әділ таңдау сырттай әділ болып көрінбеуі керек. Егер сіз он есімнің ішінен бесеуін таңдасаңыз, бастапқы тізімде қатар тұрған екі таңдауды, немесе қайталанулар рұқсат етілген кезде бір есімнің қатарынан екі рет түскенін жиі көресіз, және мұның әрқайсысы қалыпты жағдай. Әрбір таңдау тәуелсіз: алдыңғы нәтижелер кейінгілеріне ешқандай әсер етпейді және көп уақыт өткендіктен ғана ешкімнің жеңіске жету «кезегі» келмейді. Керісінше дәлелдейтін инстинкт құмарпаздың қателігі (gambler's fallacy) деп аталады, және бұл кездейсоқ таңдауды өзіміз жасағанда нашар нәтиже көрсетуімізге себеп болатын сол инстинкт — кездейсоқ таңдау сұралғанда, біз бірінші және соңғы элементтен аулақ боламыз, есімді қайталамауға тырысамыз және таңдауымызды нақты кездейсоқтыққа қарағанда әлдеқайда біркелкі бөлеміз. Күдікті түрде ұқыпты көрінетін нәтиже — адамның қолтаңбасы; шынайы кездейсоқтық топтамаларды тудырады.

Осы кездейсоқ таңдау құралын неліктен қолдану керек?

Кездейсоқ таңдау шешімнің әділдігіне сұрақтар туындауы мүмкін кез келген жерде кездеседі. Мұғалімдер оқушыларды ешкімді бөлмей тақтаға шақырады және сыныпты жобалық топтарға бөледі. Стримерлер мен маркетологтар нәтижеге сенуі тиіс аудитория алдында ұтыс ойынының жеңімпаздарын анықтайды. Менеджерлер ешкім өз еркімен алғысы келмейтін тапсырмаларды бөледі, ал командалар презентациялар кезегін немесе кезекшілікті шешеді. Зерттеушілер аудит үшін жазбалардың статистикалық іріктемесін жасайды. Отбасылар не көретіні туралы дауды тоқтатады, ал аш топ дәмхананы таңдайды. Осы жағдайлардың барлығына ортақ нәрсе — кейін кез келген адам түсіндіре алатын таңдау: ұтыс ойыны криптографиялық кездейсоқтықты қолданады, ол толығымен сіздің құрылғыңызда өтеді, ал «Тарих» бөлімі біреу кейінірек сұраса, нәтижені сақтап қалады.

Бұл құралдың бірнеше негізді шектеулері бар екенін білген жөн. Ол тізіміңізде бардан артық әртүрлі элементті таңдай алмайды — үш жеңімпаз үшін кем дегенде үш есім қажет — және ол әрқайсысы 200 таңбадан тұратын 1000 жазбамен, бір ұтыс ойынында 100 таңдаумен шектеледі. «Араластыру» және «Сұрыптау» түймелері жол-жолмен жұмыс істейді, сондықтан бір жолға қойылған үтірмен бөлінген тізім әрбір жолда бір элемент болғанда ғана қайта реттеледі; және екеуі де ұтыс ойынын емес, өрістегі мәтіннің ретін өзгертеді, өйткені ұтыс ойыны жазбаларыңыздың қандай ретпен орналасқанына қарамастан бірдей әділ. Сондай-ақ, әрбір элемент бастапқыда дәл бірдей салмаққа ие, сондықтан бір есімнің екі есе мүмкіндігі болуы керек ұтыс ойынында ол есімді тізімде екі рет жазу қажет. Осы шектеулер аясында кепілдік берік — сіздің тізіміңіздегі әрбір элемент әрбір жеке ұтыс ойынында абсолютті тең мүмкіндікке ие.

FAQ

Тізімнен кездейсоқ есімді қалай таңдауға болады?

Есімдерді «Элементтер» өрісіне — әрқайсысын жаңа жолға немесе үтірмен, бос орынмен бөліп — енгізіңіз, «Саны» өрісін 1 қалпында қалдырып, «Жасау» түймесін басыңыз. Бір есім бірден кездейсоқ таңдалады. Бірден бірнеше есімді таңдау үшін «Саны» өрісін өзіңізге қажетті санға дейін көтеріңіз.

Таңдау шынымен әділ ме?

Иә. Әрбір таңдау қарапайым іске асыру кезінде туындайтын модульдік ауытқуды (modulo bias) жоятын қабылдамау іріктеуімен (rejection sampling) бірге браузеріңіздің Web Crypto API (crypto.getRandomValues) мүмкіндігін қолданады. Әрбір элемент тізімдегі орнына қарамастан дәл бірдей ықтималдыққа ие, ал бірнеше әртүрлі элементтерді таңдау Fisher-Yates алгоритмін қолданады, сондықтан сол өлшемдегі әрбір топ та бірдей мүмкіндікке ие болады.

Менің тізімім сіздің серверіңізге жүктеле ме?

Жоқ. Бүкіл ұтыс ойыны браузеріңізде жергілікті түрде жұмыс істейді: тізім, таңдаулар және тарих ешқашан құрылғыңыздан шықпайды, сондықтан есімдерді, электрондық пошталарды немесе кез келген жеке тізімді енгізу толықтай қауіпсіз. «Файлдан жүктеңіз» де жергілікті түрде орындалады — браузеріңіз файлды өзі оқиды және ештеңе интернетке жүктелмейді.

Мен әр жолға бір элементтің орнына үтірмен немесе бос орынмен бөлінген тізімді қоя аламын ба?

Иә. «Бөлгіш» өрісі «Автоматты» режимінде тұр, ол жаңа жолдар мен үтірлерді өзі ажыратады, сондықтан кестеден, хаттан немесе құжаттан көшірілген тізім сол қалпында жұмыс істейді. Бос орынмен бөлінген тізім үшін бір қосымша қадам қажет — «Бөлгіш» мәнін «Бос орын» етіп орнатыңыз — өйткені толық аты-жөндер сияқты элементтердің өздерінде бос орындар болады және олар бойынша автоматты түрде ешқашан бөлінбейді. Егер деректеріңіздің пішімі аралас болса, «Бөлгіш» мәнін «Жаңа жол» немесе «Үтір» деп бекітіңіз.

«Қайталанбайтын» қосқышы не істейді?

«Қайталанбайтын» режимі қосулы болғанда, таңдалған әрбір элемент әртүрлі болады — бұл қағаздарды қалпақтан қайта салмай суырып алғанмен бірдей, және жеңімпаздарды немесе командаларды анықтау үшін дәл осы керек. Ол өшірулі болғанда, бір элемент бірнеше рет таңдалуы мүмкін, мұны статистиктер қайтарумен іріктеу (sampling with replacement) деп атайды.

Неліктен «Қайталанбайтын» және «Шығыс форматы» баптаулары сұр болып тұр?

Өйткені олардың екеуі де бірден көп элемент таңдаған кезде ғана қолданылады, олардың жанындағы кеңес айтқандай: «Тек Саны 1-ден көп болғанда қолданылады». «Саны» мәнін 2 немесе одан да көп етіп көтерсеңіз, екеуі де қолжетімді болады; ал саны 1 болғанда қайталайтын немесе бөлетін ештеңе жоқ.

«Шығыс форматы» опциясы не істейді?

Ол бірнеше таңдаудың қалай көрсетілетінін және көшірілетінін анықтайды: «Әрқайсысы жаңа жолда», чатта жылдам жіберу үшін «Бос орынмен бөлінген» немесе кестеге, скриптке кірістіру үшін «Үтірмен бөлінген». Бұл опция «Саны» 2 немесе одан көп болғанда қолжетімді болады.

«Араластыру» және «Сұрыптау» түймелері не істейді?

«Араластыру» түймесі «Элементтер» өрісіндегі жазбалардың ретін өзгертеді, ал «Сұрыптау» оларды әліпби ретімен және табиғи сандық ретпен орналастырады — қайта басу ретті кері айналдырады. Екеуі де ұтыс ойынының қалай жұмыс істейтінін емес, тізіміңіздің қалай жазылғанын ғана өзгертеді: құрал элементтердің қандай ретпен орналасқанына қарамастан бірдей әділ.

Тізімде қанша элемент болуы мүмкін және бірден қаншасын таңдай аламын?

Тізімге 2-ден 1000-ға дейін жазба сыяды, әрқайсысы 200 таңбаға дейін, ал бір ұтыс ойыны 100 таңдауға дейін қайтарады. Бос жолдар мен айналадағы бос орындар ескерілмейді, сондықтан кестеден немесе құжаттан көшірілген тізім өзгеріссіз жұмыс істейді.

Бұл байқау немесе ұтыс ойынының жеңімпаздарын анықтауға жарамды ма?

Иә, және бұл ең жиі кездесетін қолданыстардың бірі. Қатысушыларды енгізіңіз, «Саны» өрісін жүлделер санына қойыңыз, ешкім екі рет жеңбеуі үшін «Қайталанбайтын» режимін қосулы қалдырып, «Жасау» түймесін басыңыз. Ұтыс ойыны криптографиялық қауіпсіз кездейсоқтықты қолданатындықтан және толығымен сіздің құрылғыңызда жұмыс істейтіндіктен, процесті түсіндіру оңай, ал егер қатысушылардың бірінде кейінірек сұрақ туындаса, «Тарих» бөлімі нәтижені сақтап қалады.

Мұны адамдарды командаларға бөлу үшін қолдана аламын ба?

Иә. «Саны» өрісін бірінші команда мүшелерінің санына орнатып, «Жасау» түймесін басыңыз — таңдалған есімдер бірінші команданы құрайды. Оларды тізімнен өшіріп, келесі команда үшін процесті қайталаңыз. Ешкім бір уақытта екі командада болып қалмауы үшін «Қайталанбайтын» режимін қосулы күйде қалдырыңыз.

Неліктен бір есім қатарынан екі рет түсті?

Өйткені тәуелсіз ұтыс ойындары қайталанады және нақты кездейсоқтық осылай жұмыс істейді. Әрбір ұтыс ойыны оған дейінгі барлық ұтыстарды елемейді, сондықтан он есімнен тұратын тізімде бір есімнің қатарынан екі рет түсу ықтималдығы әр жолы 10-нан 1-ге тең — бұл құралдың бұзылуы емес, қалыпты жағдай. Егер бір ұтыс ойыны аясындағы әрбір таңдау әртүрлі болуы керек болса, «Қайталанбайтын» режимін қосыңыз.

Құрал менің таңдауларымды есте сақтай ма, және ол тегін бе?

«Тарих» қойындысы сіздің соңғы 10 ұтыс ойыныңызды өз браузеріңізде сақтайды, сондықтан алдыңғы нәтижені қалпына келтіруге, көшіруге немесе жоюға, сондай-ақ қалаған кезде бәрін тазартуға болады. Құрал толығымен тегін және тіркелуді қажет етпейді, ал ештеңе жіберілмейтіндіктен, біз қаласақ та сіздің таңдауларыңызды көре немесе сақтай алмас едік.