HeadlinesBriefing HeadlinesBriefing.com

क्यों मॉड्यूलो यादृच्छिक चयन पक्षपात पैदा करता है

Hacker News •
×

एक सामान्य प्रोग्रामिंग पैटर्न मॉड्यूलो का उपयोग करके यादृच्छिक आइटम चुनता है: `choices[random_u64() % n]`. यह सहज लगता है लेकिन सांख्यिकीय पक्षपात लाता है क्योंकि यादृच्छिक सीमा अक्सर विकल्पों की संख्या से समान रूप से विभाजित नहीं होती।

उदाहरण के लिए, 0 से 9 तक के यादृच्छिक संख्या के उपयोग से 3 आइटम चुनने पर, विकल्प 1 को 4 इनपुट मिलते हैं (0, 3, 6, 9) लेकिन विकल्प 2 और 3 को प्रत्येक को केवल 3 इनपुट मिलते हैं। विकल्प 1 40% समय पर दिखाई देता है जबकि अपेक्षित 33.3% के बजाय। यह मॉड्यूलो पक्षपात तब होता है जब यादृच्छिक सीमा विकल्पों की संख्या का गुणज नहीं होती।

सही दृष्टिकोण `random_between(l, h)` का उपयोग करता है, जो संभावना को सही ढंग से वितरित करता है, हालांकि इसे लागू करना अधिक जटिल है। बेहतर API डिज़ाइन में `random_choice()` जैसे उच्च-स्तर के फ़ंक्शन प्रदान किए जाएंगे जो स्पष्ट संभावना वितरण स्वीकार करते हैं, जिससे डेवलपर्स को वितरण आवश्यकताओं का सीधे सामना करना पड़ता है और वे दोषपूर्ण निम्न-स्तर के प्राइमिटिव्स पर निर्भर नहीं रहते।

स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित